Patch "net/packet: fix overflow in check for priv area size" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
net/packet: fix overflow in check for priv area size
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
net-packet-fix-overflow-in-check-for-priv-area-size.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
2b6867c2ce76c596676bec7d2d525af525fdc6e2Mon Sep 17 00:00:00 2001
From: Andrey Konovalov <[email protected]>
Date: Wed, 29 Mar 2017 16:11:20 +0200
Subject: net/packet: fix overflow in check for priv area size
From: Andrey Konovalov <[email protected]>
commit 2b6867c2ce76c596676bec7d2d525af525fdc6e2 upstream.
Subtracting tp_sizeof_priv from tp_block_size and casting to int to check whether one is less then the other doesn't always work (both of them are unsigned ints).
Compare them as is instead.
Also cast tp_sizeof_priv to u64 before using BLK_PLUS_PRIV, as it can overflow inside BLK_PLUS_PRIV otherwise.
--- net/packet/af_packet.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
net/packet/af_packet.c +2 -2
@@ -4235,8 +4235,8 @@ static int packet_set_ring(struct sock *if (unlikely (!PAGE_ALIGNED (req->tp_block_size))) goto out;if (po->tp_version >=TPACKET_V3 && - (int )(req->tp_block_size - -BLK_PLUS_PRIV (req_u->req3.tp_sizeof_priv)) <=0 ) + req->tp_block_size <= +BLK_PLUS_PRIV ((u64 )req_u->req3.tp_sizeof_priv)) goto out;if (unlikely (req->tp_frame_size < po->tp_hdrlen + po->tp_reserve))
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/net-packet-fix-overflow-in-check-for-priv-area-size.patch