From 38145d612963d0a5b80017d5d1d49c1d4f9637c2 Mon Sep 17 00:00:00 2001 From: Darik Horn Date: Mon, 14 Jan 2013 19:27:39 -0600 Subject: [PATCH] Ensure that zfs diff prints unicode safely. In the stream_bytes() library function used by `zfs diff`, explicitly cast each byte in the input string to an unsigned character so that the Linux fprintf() correctly escapes to octal and does not mangle the output. Signed-off-by: Brian Behlendorf Closes #1172 --- lib/libzfs/libzfs_diff.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libzfs/libzfs_diff.c b/lib/libzfs/libzfs_diff.c index 8140a70..eb05f4d 100644 --- a/lib/libzfs/libzfs_diff.c +++ b/lib/libzfs/libzfs_diff.c @@ -141,7 +141,7 @@ stream_bytes(FILE *fp, const char *string) if (*string > ' ' && *string != '\\' && *string < '\177') (void) fprintf(fp, "%c", *string++); else - (void) fprintf(fp, "\\%03o", *string++); + (void) fprintf(fp, "\\%03o", (unsigned char)*string++); } } -- 1.8.3.1