parent
0c28a3e101
commit
f523fb6e07
@ -0,0 +1,49 @@
|
||||
From 387193faf4e8216ef201f2c685f69f6fa766ec46 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Westphal <fw@strlen.de>
|
||||
Date: Sun, 18 Mar 2018 19:33:27 +0100
|
||||
Subject: [PATCH] libmnl: zero attribute padding
|
||||
|
||||
Sergei Trofimovich reports 'uninitialized bytes' warnings from nftables:
|
||||
|
||||
Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s)
|
||||
at 0x55B9EFB: sendmsg (in /lib64/libc-2.25.so)
|
||||
by 0x43E658: mnl_nft_socket_sendmsg (mnl.c:239)
|
||||
by 0x43E658: mnl_batch_talk (mnl.c:254)
|
||||
by 0x407898: nft_netlink (libnftables.c:58)
|
||||
by 0x407898: nft_run (libnftables.c:96)
|
||||
by 0x407CD5: nft_run_cmd_from_buffer (libnftables.c:291)
|
||||
by 0x406EDE: main (main.c:274)
|
||||
|
||||
This is harmless, the uninitialized memory is the padding
|
||||
that sometimes needs to be inserted between end of an attribute
|
||||
and the beginning of the new attribute.
|
||||
|
||||
Zero it to silence memory sanitizer output.
|
||||
|
||||
Signed-off-by: Florian Westphal <fw@strlen.de>
|
||||
Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
(cherry picked from commit 37c876b55a2c00424ccda5a300ab5fdec1d88b22)
|
||||
---
|
||||
src/attr.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/attr.c b/src/attr.c
|
||||
index 4f131874c11e4..0359ba959d7a0 100644
|
||||
--- a/src/attr.c
|
||||
+++ b/src/attr.c
|
||||
@@ -412,10 +412,15 @@ void mnl_attr_put(struct nlmsghdr *nlh, uint16_t type, size_t len,
|
||||
{
|
||||
struct nlattr *attr = mnl_nlmsg_get_payload_tail(nlh);
|
||||
uint16_t payload_len = MNL_ALIGN(sizeof(struct nlattr)) + len;
|
||||
+ int pad;
|
||||
|
||||
attr->nla_type = type;
|
||||
attr->nla_len = payload_len;
|
||||
memcpy(mnl_attr_get_payload(attr), data, len);
|
||||
+ pad = MNL_ALIGN(len) - len;
|
||||
+ if (pad > 0)
|
||||
+ memset(mnl_attr_get_payload(attr) + len, 0, pad);
|
||||
+
|
||||
nlh->nlmsg_len += MNL_ALIGN(payload_len);
|
||||
}
|
||||
|
Loading…
Reference in new issue