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
This commit is contained in:
Darik Horn 2013-01-14 19:27:39 -06:00 committed by Brian Behlendorf
parent b077fd4c4e
commit 38145d6129

View File

@ -141,7 +141,7 @@ stream_bytes(FILE *fp, const char *string)
if (*string > ' ' && *string != '\\' && *string < '\177') if (*string > ' ' && *string != '\\' && *string < '\177')
(void) fprintf(fp, "%c", *string++); (void) fprintf(fp, "%c", *string++);
else else
(void) fprintf(fp, "\\%03o", *string++); (void) fprintf(fp, "\\%03o", (unsigned char)*string++);
} }
} }