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 <dreisner@xxxxxxxxxxxxx> --- lib/mangle.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/mangle.c b/lib/mangle.c index e1b4814..656918c 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; -- 1.7.10.2 -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html