libnv used fcntl(fd, F_GETFL) to test whether fd is a valid file descriptor. Aside from being racy, this check requires CAP_FCNTL rights on fd. Instead, use fcntl(fd, F_GETFD), which does not require any capability rights. Also remove some redundant fd_is_valid() checks to avoid extra system calls; in many cases we were performing this check immediately before dup()ing the descriptor. Reviewed by: cem, oshogbo (previous version) MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D17963 |
||
---|---|---|
.. | ||
cnvlist.c | ||
dnvlist.c | ||
nv_impl.h | ||
nvlist_impl.h | ||
nvlist.c | ||
nvpair_impl.h | ||
nvpair.c |