Blame SOURCES/0027-libnetlink-don-t-return-error-on-success.patch

930fb9
From 0a9e18d65228376c332d7ec0f87a19b8042e8a43 Mon Sep 17 00:00:00 2001
930fb9
From: Phil Sutter <psutter@redhat.com>
930fb9
Date: Thu, 25 Oct 2018 12:24:30 +0200
930fb9
Subject: [PATCH] libnetlink: don't return error on success
930fb9
930fb9
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1602555
930fb9
Upstream Status: iproute2.git commit b45e300024bb0
930fb9
930fb9
commit b45e300024bb0936a41821ad75117dc08b65669f
930fb9
Author: Stephen Hemminger <stephen@networkplumber.org>
930fb9
Date:   Tue Sep 25 10:08:48 2018 +0200
930fb9
930fb9
    libnetlink: don't return error on success
930fb9
930fb9
    Change to error handling broke normal code.
930fb9
930fb9
    Fixes: c60389e4f9ea ("libnetlink: fix leak and using unused memory on error")
930fb9
    Reported-by: David Ahern <dsahern@gmail.com>
930fb9
    Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
930fb9
---
930fb9
 lib/libnetlink.c | 13 ++++++++-----
930fb9
 1 file changed, 8 insertions(+), 5 deletions(-)
930fb9
930fb9
diff --git a/lib/libnetlink.c b/lib/libnetlink.c
930fb9
index 5868092..f18dcea 100644
930fb9
--- a/lib/libnetlink.c
930fb9
+++ b/lib/libnetlink.c
930fb9
@@ -666,17 +666,20 @@ static int __rtnl_talk_iov(struct rtnl_handle *rtnl, struct iovec *iov,
930fb9
 				if (!err->error)
930fb9
 					/* check messages from kernel */
930fb9
 					nl_dump_ext_ack(h, errfn);
930fb9
+				else {
930fb9
+					errno = -err->error;
930fb9
 
930fb9
-				if (rtnl->proto != NETLINK_SOCK_DIAG &&
930fb9
-				    show_rtnl_err)
930fb9
-					rtnl_talk_error(h, err, errfn);
930fb9
+					if (rtnl->proto != NETLINK_SOCK_DIAG &&
930fb9
+					    show_rtnl_err)
930fb9
+						rtnl_talk_error(h, err, errfn);
930fb9
+				}
930fb9
 
930fb9
-				errno = -err->error;
930fb9
 				if (answer)
930fb9
 					*answer = (struct nlmsghdr *)buf;
930fb9
 				else
930fb9
 					free(buf);
930fb9
-				return -i;
930fb9
+
930fb9
+				return err->error ? -i : 0;
930fb9
 			}
930fb9
 
930fb9
 			if (answer) {
930fb9
-- 
930fb9
1.8.3.1
930fb9