diff options
author | Eric Andersen | 2004-03-12 22:10:40 +0000 |
---|---|---|
committer | Eric Andersen | 2004-03-12 22:10:40 +0000 |
commit | ed43806c3b3394ea4ee94c5c9ab042d0aa51f033 (patch) | |
tree | 59f79084b673caedd2f4abf0db6d9fc29027860c | |
parent | d20d37559f6a3e9abd8694d4a7375467e39eeb5e (diff) | |
download | busybox-ed43806c3b3394ea4ee94c5c9ab042d0aa51f033.zip busybox-ed43806c3b3394ea4ee94c5c9ab042d0aa51f033.tar.gz |
Hideki IWAMOTO writes:
Current `tr' implementation has a problem, if `plain char' is signed.
[current cvs version]
>echo a | _install/usr/bin/tr '\0' '\377'
Segmentation fault (core dumped)
[patched version]
>echo a | _install/usr/bin/tr '\0' '\377'
a
-rw-r--r-- | coreutils/tr.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/coreutils/tr.c b/coreutils/tr.c index 4e69dc8..958fc80 100644 --- a/coreutils/tr.c +++ b/coreutils/tr.c @@ -202,9 +202,9 @@ extern int tr_main(int argc, char **argv) map(input, input_length, output, output_length); } for (i = 0; i < input_length; i++) - invec[(int)input[i]] = TRUE; + invec[(unsigned char)input[i]] = TRUE; for (i = 0; i < output_length; i++) - outvec[(int)output[i]] = TRUE; + outvec[(unsigned char)output[i]] = TRUE; } convert(); return (0); |