From ea178007eb63a528f27805c04b5246519b5ef61a Mon Sep 17 00:00:00 2001 From: Dave Reisner Date: Sun, 13 May 2012 15:14:49 -0400 Subject: 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 --- lib/mangle.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'lib/mangle.c') diff --git a/lib/mangle.c b/lib/mangle.c index e1b48149f..656918c4b 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; -- cgit v1.2.3-55-g7522