sd-netlink: don't take possesion of netlink fd from caller on failure
authorLennart Poettering <lennart@poettering.net>
Mon, 1 Feb 2016 21:13:45 +0000 (22:13 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 1 Feb 2016 21:18:16 +0000 (22:18 +0100)
Fixes: #2338

src/libsystemd/sd-netlink/sd-netlink.c

index 15d387d..ab42b96 100644 (file)
@@ -118,8 +118,10 @@ int sd_netlink_open_fd(sd_netlink **ret, int fd) {
         rtnl->fd = fd;
 
         r = socket_bind(rtnl);
-        if (r < 0)
+        if (r < 0) {
+                rtnl->fd = -1; /* on failure, the caller remains owner of the fd, hence don't close it here */
                 return r;
+        }
 
         *ret = rtnl;
         rtnl = NULL;