]>
Commit | Line | Data |
---|---|---|
81c0d887 AM |
1 | BASH PATCH REPORT |
2 | ================= | |
3 | ||
4 | Bash-Release: 4.2 | |
5 | Patch-ID: bash42-015 | |
6 | ||
7 | Bug-Reported-by: <dnade.ext@orange-ftgroup.com> | |
8 | Bug-Reference-ID: <728_1312188080_4E3666B0_728_118711_1_3B5D3E0F95CC5C478D6500CDCE8B691F7AAAA4AA3D@PUEXCB2B.nanterre.francetelecom.fr> | |
9 | Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-08/msg00000.html | |
10 | ||
11 | Bug-Description: | |
12 | ||
13 | When in a context where arithmetic evaluation is not taking place, the | |
14 | evaluator should not check for division by 0. | |
15 | ||
16 | Patch (apply with `patch -p0'): | |
17 | ||
18 | *** ../bash-4.2-patched/expr.c 2010-12-21 11:12:13.000000000 -0500 | |
19 | --- expr.c 2011-08-02 20:58:28.000000000 -0400 | |
20 | *************** | |
21 | *** 477,480 **** | |
22 | --- 481,492 ---- | |
23 | if (special) | |
24 | { | |
25 | + if ((op == DIV || op == MOD) && value == 0) | |
26 | + { | |
27 | + if (noeval == 0) | |
28 | + evalerror (_("division by 0")); | |
29 | + else | |
30 | + value = 1; | |
31 | + } | |
32 | + | |
33 | switch (op) | |
34 | { | |
35 | *************** | |
36 | *** 483,493 **** | |
37 | break; | |
38 | case DIV: | |
39 | - if (value == 0) | |
40 | - evalerror (_("division by 0")); | |
41 | lvalue /= value; | |
42 | break; | |
43 | case MOD: | |
44 | - if (value == 0) | |
45 | - evalerror (_("division by 0")); | |
46 | lvalue %= value; | |
47 | break; | |
48 | --- 495,501 ---- | |
49 | *************** | |
50 | *** 805,809 **** | |
51 | ||
52 | if (((op == DIV) || (op == MOD)) && (val2 == 0)) | |
53 | ! evalerror (_("division by 0")); | |
54 | ||
55 | if (op == MUL) | |
56 | --- 813,822 ---- | |
57 | ||
58 | if (((op == DIV) || (op == MOD)) && (val2 == 0)) | |
59 | ! { | |
60 | ! if (noeval == 0) | |
61 | ! evalerror (_("division by 0")); | |
62 | ! else | |
63 | ! val2 = 1; | |
64 | ! } | |
65 | ||
66 | if (op == MUL) | |
67 | *** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010 | |
68 | --- patchlevel.h Thu Feb 24 21:41:34 2011 | |
69 | *************** | |
70 | *** 26,30 **** | |
71 | looks for to find the patch level (for the sccs version string). */ | |
72 | ||
73 | ! #define PATCHLEVEL 14 | |
74 | ||
75 | #endif /* _PATCHLEVEL_H_ */ | |
76 | --- 26,30 ---- | |
77 | looks for to find the patch level (for the sccs version string). */ | |
78 | ||
79 | ! #define PATCHLEVEL 15 | |
80 | ||
81 | #endif /* _PATCHLEVEL_H_ */ |