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