mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-01-14 12:10:26 +03:00
Fix error check in nvlist_print_json_string
Move check for errors from mbrtowc() into the loop. The error values are not actually negative, so we don't break out of the loop when they are encountered. Reviewed-by: Tony Nguyen <tony.nguyen@delphix.com> Reviewed-by: John Kennedy <john.kennedy@delphix.com> Signed-off-by: Ryan Moeller <ryan@iXsystems.com> Closes #12175 Closes #12176
This commit is contained in:
parent
f84fe3fc87
commit
1f8e5b6cb8
@ -54,6 +54,13 @@ nvlist_print_json_string(FILE *fp, const char *input)
|
|||||||
|
|
||||||
FPRINTF(fp, "\"");
|
FPRINTF(fp, "\"");
|
||||||
while ((sz = mbrtowc(&c, input, MB_CUR_MAX, &mbr)) > 0) {
|
while ((sz = mbrtowc(&c, input, MB_CUR_MAX, &mbr)) > 0) {
|
||||||
|
if (sz == (size_t)-1 || sz == (size_t)-2) {
|
||||||
|
/*
|
||||||
|
* We last read an invalid multibyte character sequence,
|
||||||
|
* so return an error.
|
||||||
|
*/
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case '"':
|
case '"':
|
||||||
FPRINTF(fp, "\\\"");
|
FPRINTF(fp, "\\\"");
|
||||||
@ -97,14 +104,6 @@ nvlist_print_json_string(FILE *fp, const char *input)
|
|||||||
input += sz;
|
input += sz;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sz == (size_t)-1 || sz == (size_t)-2) {
|
|
||||||
/*
|
|
||||||
* We last read an invalid multibyte character sequence,
|
|
||||||
* so return an error.
|
|
||||||
*/
|
|
||||||
return (-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
FPRINTF(fp, "\"");
|
FPRINTF(fp, "\"");
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user