Permalink
Browse files

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 <behlendorf1@llnl.gov>
Closes #1172
  • Loading branch information...
1 parent b077fd4 commit 38145d612963d0a5b80017d5d1d49c1d4f9637c2 @dajhorn dajhorn committed with Jan 15, 2013
Showing with 1 addition and 1 deletion.
  1. +1 −1 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++);
}
}

0 comments on commit 38145d6

Please sign in to comment.