]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
libbpf: Use pr_warn() when printing netlink errors
authorToke Høiland-Jørgensen <toke@redhat.com>
Sat, 9 Nov 2019 20:37:30 +0000 (21:37 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 11 Nov 2019 03:26:30 +0000 (19:26 -0800)
The netlink functions were using fprintf(stderr, ) directly to print out
error messages, instead of going through the usual logging macros. This
makes it impossible for the calling application to silence or redirect
those error messages. Fix this by switching to pr_warn() in nlattr.c and
netlink.c.

Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Song Liu <songliubraving@fb.com>
Link: https://lore.kernel.org/bpf/157333185055.88376.15999360127117901443.stgit@toke.dk
tools/lib/bpf/netlink.c
tools/lib/bpf/nlattr.c

index ce3ec81b71c013d6b96c9037631a835f5013fb15..a261df9cb4887cf1df154f2cbd42c55ddcc6a0bd 100644 (file)
@@ -12,6 +12,7 @@
 
 #include "bpf.h"
 #include "libbpf.h"
+#include "libbpf_internal.h"
 #include "nlattr.h"
 
 #ifndef SOL_NETLINK
@@ -43,7 +44,7 @@ int libbpf_netlink_open(__u32 *nl_pid)
 
        if (setsockopt(sock, SOL_NETLINK, NETLINK_EXT_ACK,
                       &one, sizeof(one)) < 0) {
-               fprintf(stderr, "Netlink error reporting not supported\n");
+               pr_warn("Netlink error reporting not supported\n");
        }
 
        if (bind(sock, (struct sockaddr *)&sa, sizeof(sa)) < 0) {
index 1e69c0c8d413f7fb54830783c19c4dac4875fa8f..8db44bbfc66ddb7f02a062cc7a6f589577e429ba 100644 (file)
@@ -8,6 +8,7 @@
 
 #include <errno.h>
 #include "nlattr.h"
+#include "libbpf_internal.h"
 #include <linux/rtnetlink.h>
 #include <string.h>
 #include <stdio.h>
@@ -121,8 +122,8 @@ int libbpf_nla_parse(struct nlattr *tb[], int maxtype, struct nlattr *head,
                }
 
                if (tb[type])
-                       fprintf(stderr, "Attribute of type %#x found multiple times in message, "
-                                 "previous attribute is being ignored.\n", type);
+                       pr_warn("Attribute of type %#x found multiple times in message, "
+                               "previous attribute is being ignored.\n", type);
 
                tb[type] = nla;
        }
@@ -181,15 +182,14 @@ int libbpf_nla_dump_errormsg(struct nlmsghdr *nlh)
 
        if (libbpf_nla_parse(tb, NLMSGERR_ATTR_MAX, attr, alen,
                             extack_policy) != 0) {
-               fprintf(stderr,
-                       "Failed to parse extended error attributes\n");
+               pr_warn("Failed to parse extended error attributes\n");
                return 0;
        }
 
        if (tb[NLMSGERR_ATTR_MSG])
                errmsg = (char *) libbpf_nla_data(tb[NLMSGERR_ATTR_MSG]);
 
-       fprintf(stderr, "Kernel error message: %s\n", errmsg);
+       pr_warn("Kernel error message: %s\n", errmsg);
 
        return 0;
 }