summaryrefslogtreecommitdiff
path: root/coreutils/tr.c
diff options
context:
space:
mode:
authorDenis Vlasenko2008-07-26 19:34:00 +0000
committerDenis Vlasenko2008-07-26 19:34:00 +0000
commit5e40070d38cf02b96da72db5c6612e8971ef65f0 (patch)
tree6c5242140719a15c406e4d18888859e01986b3d0 /coreutils/tr.c
parentdf96df9c7c78d0f19c8d1ac1aa3d8d80abbe16bb (diff)
downloadbusybox-5e40070d38cf02b96da72db5c6612e8971ef65f0.zip
busybox-5e40070d38cf02b96da72db5c6612e8971ef65f0.tar.gz
tr: fix "access past the end of a string" bug 4354
Diffstat (limited to 'coreutils/tr.c')
-rw-r--r--coreutils/tr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/coreutils/tr.c b/coreutils/tr.c
index e439fcb..28798fe 100644
--- a/coreutils/tr.c
+++ b/coreutils/tr.c
@@ -138,7 +138,7 @@ static unsigned int expand(const char *arg, char *buffer)
arg += 3; /* skip CHAR=] */
continue;
}
- if (*arg != '-') { /* not [x-...] - copy verbatim */
+ if (i == '\0' || *arg != '-') { /* not [x-...] - copy verbatim */
*buffer++ = '[';
arg--; /* points to x */
continue; /* copy all, including eventual ']' */