]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
packet: in recvmsg msg_name return at least sizeof sockaddr_ll
authorWillem de Bruijn <willemb@google.com>
Mon, 29 Apr 2019 15:46:55 +0000 (11:46 -0400)
committerKhalid Elmously <khalid.elmously@canonical.com>
Fri, 14 Feb 2020 05:29:37 +0000 (00:29 -0500)
commitdfb382dcda432ba6355e014e6f60a406c2fdf03e
treefe54082ae8dfa8f7d300101488c1aeb693aa40b3
parent5c3b3f0e513154bb0bc178d4d9fadca3c618d042
packet: in recvmsg msg_name return at least sizeof sockaddr_ll

BugLink: https://bugs.launchpad.net/bugs/1863019
[ Upstream commit b2cf86e1563e33a14a1c69b3e508d15dc12f804c ]

Packet send checks that msg_name is at least sizeof sockaddr_ll.
Packet recv must return at least this length, so that its output
can be passed unmodified to packet send.

This ceased to be true since adding support for lladdr longer than
sll_addr. Since, the return value uses true address length.

Always return at least sizeof sockaddr_ll, even if address length
is shorter. Zero the padding bytes.

Change v1->v2: do not overwrite zeroed padding again. use copy_len.

Fixes: 0fb375fb9b93 ("[AF_PACKET]: Allow for > 8 byte hardware addresses.")
Suggested-by: David Laight <David.Laight@aculab.com>
Signed-off-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
net/packet/af_packet.c