projects/linux·commit ba8379b2

[PATCH] bridge: fix possible overflow in get_fdb_entries

ba8379b2 · Chris Wright <[email protected]> · 2006-11-20 15:02:49 -08:00

Make sure to properly clamp maxnum to avoid overflow

Signed-off-by: Chris Wright <[email protected]>
Acked-by: Eugene Teo <[email protected]>
Acked-by: Marcel Holtmann <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Commit
ba8379b220509e9448c00a77cf6c15ac2a559cc7
Parents
24d7bb33

Changes

1 files changed · +5 −4

FileStatusAddDelContent
net/bridge/br_ioctl.cmodified+5−4View file

net/bridge/br_ioctl.c

View file
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)