HomeFreeBSD

Silence new static analyzer defect reports from idmap_util.c

Description

Silence new static analyzer defect reports from idmap_util.c

2a068a1394d179dda4becf350e3afb4e8819675e introduced 2 new defect
reports from Coverity and 1 from Clang's static analyzer.

Coverity complained about a potential resource leak from only calling
close(fd) when fd > 0 because fd might be 0. This is a false
positive, but rather than dismiss it as such, we can change the
comparison to ensure that this never appears again from any static
analyzer. Upon inspection, 6 more instances of this were found in the
file, so those were changed too. Unfortunately, since the file
descriptor has been put into an unsigned variable in attr.userns_fd,
we cannot do a non-negative check on it to see if it has not been
allocated, so we instead restructure the error handling to avoid the
need for a check. This also means that errors had not been handled
correctly here, so the static analyzer found a bug (although practically
by accident).

Coverity also complained about a dereference before a NULL check in
do_idmap_mount() on source. Upon inspection, it appears that the
pointer is never NULL, so we delete the NULL check as cleanup.

Clang's static analyzer complained that the return value of
write_pid_idmaps() can be uninitialized if we have no idmaps to write.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Youzhong Yang <yyang@mathworks.com>
Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Closes #14061

Details

Provenance
Richard Yao <richard.yao@alumni.stonybrook.edu>Authored on Oct 20 2022, 9:46 PM
GitHub <noreply@github.com>Committed on Oct 20 2022, 9:46 PM
Parents
rGa06df8d7c1ec: Linux: Upgrade random_get_pseudo_bytes() to xoshiro256++ 1.0
Branches
Unknown
Tags
Unknown

Event Timeline

GitHub <noreply@github.com> committed rGab32a14b2ed7: Silence new static analyzer defect reports from idmap_util.c (authored by Richard Yao <richard.yao@alumni.stonybrook.edu>).Oct 20 2022, 9:46 PM