From: Dave Reisner Date: Sun, 13 May 2012 19:14:49 +0000 (-0400) Subject: lib/mangle: check for end of string on every iteration X-Git-Tag: v2.22-rc1~415 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ea178007eb63a528f27805c04b5246519b5ef61a;p=thirdparty%2Futil-linux.git lib/mangle: check for end of string on every iteration Checking for the null byte at the end of the string only conditionally leads to segfaults, evidenced by mount helpers crashing on writes to /run/mount/utab. Simply check for the null on each iteration, and append a null byte to the mangled string before breaking. Signed-off-by: Dave Reisner --- diff --git a/lib/mangle.c b/lib/mangle.c index e1b48149f9..656918c4bb 100644 --- a/lib/mangle.c +++ b/lib/mangle.c @@ -31,16 +31,17 @@ char *mangle(const char *s) if (!sp) return NULL; while(1) { + if (!*s) { + *sp = '\0'; + break; + } if (is_unwanted_char(*s)) { *sp++ = '\\'; *sp++ = '0' + ((*s & 0300) >> 6); *sp++ = '0' + ((*s & 070) >> 3); *sp++ = '0' + (*s & 07); - } else { + } else *sp++ = *s; - if (!*s) - break; - } s++; } return ss;