summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2014-09-03 14:44:23 +0000
committerpjd <pjd@FreeBSD.org>2014-09-03 14:44:23 +0000
commit4509927d18b0250ebe70671f546bd8cbc99b29f1 (patch)
tree613408b5aef381c4502b9e185ae6918b6f801569
parent23ddd9899301c962e97fb6cb3465f9f67bbcb2f4 (diff)
downloadFreeBSD-src-4509927d18b0250ebe70671f546bd8cbc99b29f1.zip
FreeBSD-src-4509927d18b0250ebe70671f546bd8cbc99b29f1.tar.gz
Fix descriptors leak in case of nvlist_xunpack() failure.
Submitted by: Mariusz Zaborski <oshogbo@FreeBSD.org>
-rw-r--r--lib/libnv/nvlist.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/libnv/nvlist.c b/lib/libnv/nvlist.c
index 929ba48..4cb089a 100644
--- a/lib/libnv/nvlist.c
+++ b/lib/libnv/nvlist.c
@@ -760,8 +760,11 @@ nvlist_recv(int sock)
}
nvl = nvlist_xunpack(buf, size, fds, nfds);
- if (nvl == NULL)
+ if (nvl == NULL) {
+ for (i = 0; i < nfds; i++)
+ close(fds[i]);
goto out;
+ }
ret = nvl;
out:
OpenPOWER on IntegriCloud