diff mbox series

[libmnl] attr: zero attribute padding

Message ID 20180318183741.32309-1-fw@strlen.de
State Accepted
Delegated to: Florian Westphal
Headers show
Series [libmnl] attr: zero attribute padding | expand

Commit Message

Florian Westphal March 18, 2018, 6:37 p.m. UTC
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>
---
 src/attr.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Pablo Neira Ayuso March 20, 2018, 12:12 p.m. UTC | #1
On Sun, Mar 18, 2018 at 07:37:41PM +0100, Florian Westphal wrote:
> 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>
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox series

Patch

diff --git a/src/attr.c b/src/attr.c
index 4f131874c11e..0359ba959d7a 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);
 }