HomeFreeBSD

Do not pass -1 to strerror() from zfs_send_cb_impl()

Description

Do not pass -1 to strerror() from zfs_send_cb_impl()

zfs_send_cb_impl() calls dump_filesystems(), which calls
dump_filesystem(), which will return -1 as an error when
zfs_open() returns NULL.

This will be passed to zfs_standard_error(), which passes it to
zfs_standard_error_fmt(), which passes it to strerror().

To fix this, we modify zfs_open() to set errno whenever it returns
NULL. Most of the cases already have errno set (since they pass it to
zfs_standard_error_fmt(), which makes this easy. Then we modify
dump_filesystem() to pass errno instead of -1.

Reported-by: Coverity (CID-1524598)
Reviewed-by: Damian Szuberski <szuberskidamian@gmail.com>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Closes #14264

Details

Provenance
Richard Yao <richard.yao@alumni.stonybrook.edu>Authored on Dec 4 2022, 10:03 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Dec 8 2022, 10:15 PM
Parents
rG242a5b748cbf: Fix dereference after null check in enqueue_range
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rG5f73bbba4367: Do not pass -1 to strerror() from zfs_send_cb_impl() (authored by Richard Yao <richard.yao@alumni.stonybrook.edu>).Dec 8 2022, 10:15 PM