From 4fa192e8d11bff4f335c3b23fe940c6e73c9b4dc Mon Sep 17 00:00:00 2001 From: sherlock2010 <15151851377@163.com> Date: Fri, 25 Sep 2020 09:36:26 +0800 Subject: [PATCH] netlink fix error message suppression --- ...etlink-fix-error-message-suppression.patch | 42 +++++++++++++++++++ ethtool.spec | 10 ++++- 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 0001-netlink-fix-error-message-suppression.patch diff --git a/0001-netlink-fix-error-message-suppression.patch b/0001-netlink-fix-error-message-suppression.patch new file mode 100644 index 0000000..8ea63fb --- /dev/null +++ b/0001-netlink-fix-error-message-suppression.patch @@ -0,0 +1,42 @@ +From a4d9db29f8326d68762dbc0f78ad6f1aa4f29887 Mon Sep 17 00:00:00 2001 +From: Michal Kubecek +Date: Wed, 10 Jun 2020 13:47:34 +0200 +Subject: [PATCH] netlink: fix error message suppression + +Rewrite of nlsock_process_reply() used a bool variable to store the value +of nlctx->suppress_nlerr before passing to nlsock_process_ack(). This +causes the value of 2 (suppress all error/warning messages) to be converted +to 1 (suppress only -EOPNOTSUPP). As a result, -ENOENT returned by failed +genetlink family lookup when running on kernel without ethtool netlink +support is not ignored and misleading "netlink error: No such file or +directory" message is issued even if the ioctl fallback works as expected. + +Fixes: 76bdf9372824 ("netlink: use pretty printing for ethtool netlink messages") +Reported-by: Heiner Kallweit +Signed-off-by: Michal Kubecek +--- + netlink/nlsock.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/netlink/nlsock.c b/netlink/nlsock.c +index 2c760b7..c3f09b6 100644 +--- a/netlink/nlsock.c ++++ b/netlink/nlsock.c +@@ -255,12 +255,12 @@ int nlsock_process_reply(struct nl_socket *nlsk, mnl_cb_t reply_cb, void *data) + + nlhdr = (struct nlmsghdr *)buff; + if (nlhdr->nlmsg_type == NLMSG_ERROR) { +- bool silent = nlsk->nlctx->suppress_nlerr; ++ unsigned int suppress = nlsk->nlctx->suppress_nlerr; + bool pretty; + + pretty = debug_on(nlsk->nlctx->ctx->debug, + DEBUG_NL_PRETTY_MSG); +- return nlsock_process_ack(nlhdr, len, silent, pretty); ++ return nlsock_process_ack(nlhdr, len, suppress, pretty); + } + + msgbuff->nlhdr = nlhdr; +-- +1.8.3.1 + diff --git a/ethtool.spec b/ethtool.spec index d9b2149..aeee9c6 100644 --- a/ethtool.spec +++ b/ethtool.spec @@ -1,12 +1,14 @@ Name: ethtool Epoch: 2 Version: 5.7 -Release: 1 +Release: 2 Summary: Settings tool for Ethernet NICs License: GPLv2 URL: https://www.kernel.org/pub/software/network/ethtool Source0: https://www.kernel.org/pub/software/network/%{name}/%{name}-%{version}.tar.xz +Patch0: 0001-netlink-fix-error-message-suppression.patch + BuildRequires: gcc BuildRequires: libmnl-devel Conflicts: filesystem < 3 @@ -53,6 +55,12 @@ make check %{_mandir}/man8/%{name}.8* %changelog +* Fri Sep 25 2020 zhouyihang - 2:5.7-2 +- Type:bugfix +- Id:NA +- SUG:NA +- DESC:netlink fix error message suppression + * Wed Jul 29 2020 liulong - 2:5.7-1 - Type:requirement - Id:NA -- Gitee