Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Apr 2015 22:59:44 +0000 (UTC)
From:      Mariusz Zaborski <oshogbo@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r282258 - head/sys/kern
Message-ID:  <201504292259.t3TMxiKJ092300@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201504292259.t3TMxiKJ092300>