Fix TOCTOU race conditions reported by CodeQL and Coverity
CodeQL and Coverity both complained about:
- lib/libshare/os/linux/smb.c
- tests/zfs-tests/cmd/mmapwrite.c
- twice
- tests/zfs-tests/tests/functional/tmpfile/tmpfile_002_pos.c
- tests/zfs-tests/tests/functional/tmpfile/tmpfile_stat_mode.c
- coverity had a second complaint that CodeQL did not have
- tests/zfs-tests/cmd/suid_write_to_file.c
- Coverity had two complaints and CodeQL had one complaint, both
differed. The CodeQL complaint is about the main point of the test, so it is not fixable without a hack involving `fork()`.
The issues reported by CodeQL are fixed, with the exception of the last
one, which is deemed to be a false positive that is too much trouble to
wrokaround. The issues reported by Coverity were only fixed if CodeQL
complained about them.
There were issues reported by Coverity in a number of other files that
were not reported by CodeQL, but fixing the CodeQL complaints is
considered a priority since we want to integrate it into a github
workflow, so the remaining Coverity complaints are left for future work.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Closes #14098