diff options
author | Christian Schwarz <[email protected]> | 2020-10-14 23:04:19 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2020-10-14 14:04:19 -0700 |
commit | 15a4ca4620b7a550902cdd998ff7949c354915e7 (patch) | |
tree | 0344a7e95a1d5474cf9b16a8b40189c59bba5dba | |
parent | 6a60ef80e2f00fca81f02a6eb93a520a29d6ae03 (diff) |
Fix crash caused by invalid snapshot names in redactnvl
This is a follow up fix for commit 0fdd6106bb. The VERIFY is
only true when we haven't hit an error code path. See added
test case for a reproducer.
Reviewed-by: Matthew Ahrens <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Christian Schwarz <[email protected]>
Closes #11048
-rw-r--r-- | module/zfs/dmu_redact.c | 2 | ||||
-rwxr-xr-x | tests/zfs-tests/tests/functional/redacted_send/redacted_negative.ksh | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/module/zfs/dmu_redact.c b/module/zfs/dmu_redact.c index c53fba75c..225ec4053 100644 --- a/module/zfs/dmu_redact.c +++ b/module/zfs/dmu_redact.c @@ -1062,9 +1062,9 @@ dmu_redact_snap(const char *snapname, nvlist_t *redactnvl, } } - VERIFY3P(nvlist_next_nvpair(redactnvl, pair), ==, NULL); if (err != 0) goto out; + VERIFY3P(nvlist_next_nvpair(redactnvl, pair), ==, NULL); boolean_t resuming = B_FALSE; zfs_bookmark_phys_t bookmark; diff --git a/tests/zfs-tests/tests/functional/redacted_send/redacted_negative.ksh b/tests/zfs-tests/tests/functional/redacted_send/redacted_negative.ksh index 56b990be1..432460fa2 100755 --- a/tests/zfs-tests/tests/functional/redacted_send/redacted_negative.ksh +++ b/tests/zfs-tests/tests/functional/redacted_send/redacted_negative.ksh @@ -56,6 +56,8 @@ done log_mustnot zfs redact $sendfs@snap1 log_mustnot zfs redact $sendfs@snap1 book log_mustnot zfs redact $sendfs#book1 book4 $clone1 +log_mustnot zfs redact $sendfs@snap1 book snap2 snap3 +log_mustnot zfs redact $sendfs@snap1 book @snap2 @snap3 log_mustnot eval "zfs send --redact $sendfs#book $sendfs@snap >/dev/null" # Redaction snapshots not a descendant of tosnap |