]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
sitnl: fix failure reporting by keeping error negative
authorAntonio Quartulli <a@unstable.cc>
Sat, 18 Apr 2020 01:18:49 +0000 (03:18 +0200)
committerGert Doering <gert@greenie.muc.de>
Sun, 19 Apr 2020 09:50:17 +0000 (11:50 +0200)
The err->errno value reported by netlink is already negative.

Prepending ierr->errno with '-' when forwarding it to
the caller results in a positive value and thus not
detected as error.

Fix error handling in sitnl by not negating the sign of
the value returned by sitnl_send() in case of generic error.

While at it, print the errno in decimal form along with
its string represenation.

Reported-by: Richard Bonhomme <tincanteksup@gmail.com>
Signed-off-by: Antonio Quartulli <a@unstable.cc>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20200418011849.382-1-a@unstable.cc>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19773.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/networking_sitnl.c

index b93697e901f38cd39f1bb2d8b17c99c575399b7c..7adcb64c79a5b60e6351408c7a2bbf00e0c35788 100644 (file)
@@ -365,9 +365,9 @@ sitnl_send(struct nlmsghdr *payload, pid_t peer, unsigned int groups,
                     }
                     else
                     {
-                        msg(M_WARN, "%s: rtnl: generic error: %s",
-                            __func__, strerror(-err->error));
-                        ret = -err->error;
+                        msg(M_WARN, "%s: rtnl: generic error (%d): %s",
+                            __func__, err->error, strerror(-err->error));
+                        ret = err->error;
                     }
                 }
                 goto out;