svn commit: r282258 - head/sys/kern
Mariusz Zaborski
oshogbo at FreeBSD.org
Wed Apr 29 22:59:45 UTC 2015
Author: oshogbo
Date: Wed Apr 29 22:59:44 2015
New Revision: 282258
URL: https://svnweb.freebsd.org/changeset/base/282258
Log:
Save errno from close override.
Approved by: pjd (mentor)
Modified:
head/sys/kern/subr_nvlist.c
head/sys/kern/subr_nvpair.c
Modified: head/sys/kern/subr_nvlist.c
==============================================================================
--- head/sys/kern/subr_nvlist.c Wed Apr 29 22:57:04 2015 (r282257)
+++ head/sys/kern/subr_nvlist.c Wed Apr 29 22:59:44 2015 (r282258)
@@ -929,8 +929,10 @@ nvlist_recv(int sock)
nvl = nvlist_xunpack(buf, size, fds, nfds);
if (nvl == NULL) {
+ SAVE_ERRNO(serrno);
for (i = 0; i < nfds; i++)
close(fds[i]);
+ RESTORE_ERRNO(serrno);
goto out;
}
Modified: head/sys/kern/subr_nvpair.c
==============================================================================
--- head/sys/kern/subr_nvpair.c Wed Apr 29 22:57:04 2015 (r282257)
+++ head/sys/kern/subr_nvpair.c Wed Apr 29 22:59:44 2015 (r282258)
@@ -848,6 +848,7 @@ nvpair_t *
nvpair_create_descriptor(const char *name, int value)
{
nvpair_t *nvp;
+ int serrno;
if (value < 0 || !fd_is_valid(value)) {
errno = EBADF;
@@ -860,8 +861,11 @@ nvpair_create_descriptor(const char *nam
nvp = nvpair_allocv(name, NV_TYPE_DESCRIPTOR, (uint64_t)value,
sizeof(int64_t));
- if (nvp == NULL)
+ if (nvp == NULL) {
+ SAVE_ERRNO(serrno);
close(value);
+ RESTORE_ERRNO(serrno);
+ }
return (nvp);
}
More information about the svn-src-head
mailing list