From: Chris Wright Date: Mon, 20 Nov 2006 23:02:49 +0000 (-0800) Subject: [PATCH] bridge: fix possible overflow in get_fdb_entries X-Git-Tag: upstream/snapshot3+hdmi~36210^2~20^2~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ba8379b220509e9448c00a77cf6c15ac2a559cc7;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git [PATCH] bridge: fix possible overflow in get_fdb_entries Make sure to properly clamp maxnum to avoid overflow Signed-off-by: Chris Wright Acked-by: Eugene Teo Acked-by: Marcel Holtmann Signed-off-by: Linus Torvalds --- diff --git a/net/bridge/br_ioctl.c b/net/bridge/br_ioctl.c index 4e4119a..4c61a7e 100644 --- a/net/bridge/br_ioctl.c +++ b/net/bridge/br_ioctl.c @@ -58,12 +58,13 @@ static int get_fdb_entries(struct net_bridge *br, void __user *userbuf, { int num; void *buf; - size_t size = maxnum * sizeof(struct __fdb_entry); + size_t size; - if (size > PAGE_SIZE) { - size = PAGE_SIZE; + /* Clamp size to PAGE_SIZE, test maxnum to avoid overflow */ + if (maxnum > PAGE_SIZE/sizeof(struct __fdb_entry)) maxnum = PAGE_SIZE/sizeof(struct __fdb_entry); - } + + size = maxnum * sizeof(struct __fdb_entry); buf = kmalloc(size, GFP_USER); if (!buf)