diff options
author | Andy Boyett <agb@openwrt.org> | 2008-08-28 16:40:53 +0000 |
---|---|---|
committer | Andy Boyett <agb@openwrt.org> | 2008-08-28 16:40:53 +0000 |
commit | a12f23ba98920706796790f5363a2b7be10e0042 (patch) | |
tree | 77ae71292cd75ea7749d2cf579af49698a3537e1 /package/busybox/patches | |
parent | 2176ae1a6f384d977ca77f378494f28afeb16100 (diff) | |
download | upstream-a12f23ba98920706796790f5363a2b7be10e0042.tar.gz upstream-a12f23ba98920706796790f5363a2b7be10e0042.tar.bz2 upstream-a12f23ba98920706796790f5363a2b7be10e0042.zip |
Use unsigned longs for bitwise operations in awk, thanks benoar. - Resolves the ipcalc.sh bug on some arches, closes #3012, #3946 - Submitted upstream as busybox bug #4774
SVN-Revision: 12427
Diffstat (limited to 'package/busybox/patches')
-rw-r--r-- | package/busybox/patches/530-unsigned_bitwise_ops.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/package/busybox/patches/530-unsigned_bitwise_ops.patch b/package/busybox/patches/530-unsigned_bitwise_ops.patch new file mode 100644 index 0000000000..3226892b8a --- /dev/null +++ b/package/busybox/patches/530-unsigned_bitwise_ops.patch @@ -0,0 +1,36 @@ +--- a/editors/awk.c ++++ b/editors/awk.c +@@ -2046,27 +2046,27 @@ + break; + + case B_an: +- setvar_i(res, (long)getvar_i(av[0]) & (long)getvar_i(av[1])); ++ setvar_i(res, (unsigned long)getvar_i(av[0]) & (unsigned long)getvar_i(av[1])); + break; + + case B_co: +- setvar_i(res, ~(long)getvar_i(av[0])); ++ setvar_i(res, ~(unsigned long)getvar_i(av[0])); + break; + + case B_ls: +- setvar_i(res, (long)getvar_i(av[0]) << (long)getvar_i(av[1])); ++ setvar_i(res, (unsigned long)getvar_i(av[0]) << (unsigned long)getvar_i(av[1])); + break; + + case B_or: +- setvar_i(res, (long)getvar_i(av[0]) | (long)getvar_i(av[1])); ++ setvar_i(res, (unsigned long)getvar_i(av[0]) | (unsigned long)getvar_i(av[1])); + break; + + case B_rs: +- setvar_i(res, (long)((unsigned long)getvar_i(av[0]) >> (unsigned long)getvar_i(av[1]))); ++ setvar_i(res, (unsigned long)getvar_i(av[0]) >> (unsigned long)getvar_i(av[1])); + break; + + case B_xo: +- setvar_i(res, (long)getvar_i(av[0]) ^ (long)getvar_i(av[1])); ++ setvar_i(res, (unsigned long)getvar_i(av[0]) ^ (unsigned long)getvar_i(av[1])); + break; + + case B_lo: |