From: LOLi Date: Tue, 18 Sep 2018 16:43:09 +0000 (+0200) Subject: zstreamdump dumps core printing truncated nvlist X-Git-Tag: zfs-0.8.0-rc2~101 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e0b7ff46c98ef19afe58b21df9255d243de1a662;p=zfs zstreamdump dumps core printing truncated nvlist This change prevents zstreamdump from crashing when trying to print invalid nvlist data (DRR_BEGIN record) from a truncated send stream. Reviewed-by: Brian Behlendorf Signed-off-by: loli10K Closes #7917 --- diff --git a/cmd/zstreamdump/zstreamdump.c b/cmd/zstreamdump/zstreamdump.c index 6c7150b10..a2edefa92 100644 --- a/cmd/zstreamdump/zstreamdump.c +++ b/cmd/zstreamdump/zstreamdump.c @@ -384,10 +384,12 @@ main(int argc, char *argv[]) if (ferror(send_stream)) perror("fread"); err = nvlist_unpack(buf, sz, &nv, 0); - if (err) + if (err) { perror(strerror(err)); - nvlist_print(stdout, nv); - nvlist_free(nv); + } else { + nvlist_print(stdout, nv); + nvlist_free(nv); + } } break;