[lxc-devel] [PATCH 2/6] af_unix: make sure to keep useful errno

Serge Hallyn serge.hallyn at ubuntu.com
Mon Mar 4 20:43:24 UTC 2013


Signed-off-by: Serge Hallyn <serge.hallyn at ubuntu.com>
---
 src/lxc/af_unix.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/lxc/af_unix.c b/src/lxc/af_unix.c
index 2a34828..f6c65fb 100644
--- a/src/lxc/af_unix.c
+++ b/src/lxc/af_unix.c
@@ -56,12 +56,16 @@ int lxc_af_unix_open(const char *path, int type, int flags)
 	       path[0]?strlen(path):sizeof(addr.sun_path));
 
 	if (bind(fd, (struct sockaddr *)&addr, sizeof(addr))) {
+		int tmp = errno;
 		close(fd);
+		errno = tmp;
 		return -1;
 	}
 	
 	if (type == SOCK_STREAM && listen(fd, 100)) {
+		int tmp = errno;
 		close(fd);
+		errno = tmp;
 		return -1;
 	}
 
@@ -99,7 +103,9 @@ int lxc_af_unix_connect(const char *path)
 	       path[0]?strlen(path):sizeof(addr.sun_path));
 
 	if (connect(fd, (struct sockaddr *)&addr, sizeof(addr))) {
+		int tmp = errno;
 		close(fd);
+		errno = tmp;
 		return -1;
 	}
 
-- 
1.8.1.2





More information about the lxc-devel mailing list