diff options
author | Chet Ramey <chet.ramey@case.edu> | 2011-11-22 20:02:56 -0500 |
---|---|---|
committer | Chet Ramey <chet.ramey@case.edu> | 2011-11-22 20:02:56 -0500 |
commit | cf391c36e29b2d7b8b7031f4bfe365de9fbebd9d (patch) | |
tree | 037c5e064ae07d2b66949da893fcbba08bb30d9c /expr.c | |
parent | 25db9a70d4c2ba5c43d4167f231bdd8d760d5a06 (diff) | |
download | android_external_bash-cf391c36e29b2d7b8b7031f4bfe365de9fbebd9d.tar.gz android_external_bash-cf391c36e29b2d7b8b7031f4bfe365de9fbebd9d.tar.bz2 android_external_bash-cf391c36e29b2d7b8b7031f4bfe365de9fbebd9d.zip |
Bash-4.2 patch 15
Diffstat (limited to 'expr.c')
-rw-r--r-- | expr.c | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -476,19 +476,23 @@ expassign () if (special) { + if ((op == DIV || op == MOD) && value == 0) + { + if (noeval == 0) + evalerror (_("division by 0")); + else + value = 1; + } + switch (op) { case MUL: lvalue *= value; break; case DIV: - if (value == 0) - evalerror (_("division by 0")); lvalue /= value; break; case MOD: - if (value == 0) - evalerror (_("division by 0")); lvalue %= value; break; case PLUS: @@ -804,7 +808,12 @@ exp2 () val2 = exppower (); if (((op == DIV) || (op == MOD)) && (val2 == 0)) - evalerror (_("division by 0")); + { + if (noeval == 0) + evalerror (_("division by 0")); + else + val2 = 1; + } if (op == MUL) val1 *= val2; |