Skip to content

Commit bf7d26b

Browse files
ryaodatacore-rm
authored andcommitted
Fix NULL pointer passed to strlcpy from zap_lookup_impl()
Clang's static analyzer pointed out that whenever zap_lookup_by_dnode() is called, we have the following stack where strlcpy() is passed a NULL pointer for realname from zap_lookup_by_dnode(): strlcpy() zap_lookup_impl() zap_lookup_norm_by_dnode() zap_lookup_by_dnode() Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Closes openzfs#14044
1 parent 0c66847 commit bf7d26b

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

module/zfs/zap_micro.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1013,8 +1013,10 @@ zap_lookup_impl(zap_t *zap, const char *name,
10131013
} else {
10141014
*(uint64_t *)buf =
10151015
MZE_PHYS(zap, mze)->mze_value;
1016-
(void) strlcpy(realname,
1017-
MZE_PHYS(zap, mze)->mze_name, rn_len);
1016+
if (realname != NULL)
1017+
(void) strlcpy(realname,
1018+
MZE_PHYS(zap, mze)->mze_name,
1019+
rn_len);
10181020
if (ncp) {
10191021
*ncp = mzap_normalization_conflict(zap,
10201022
zn, mze);

0 commit comments

Comments
 (0)