b894d26e35
git-svn-id: http://svn.sabayonlinux.org/overlay@389 d7aec97c-591d-0410-af39-a8856400b30a
23 lines
615 B
Plaintext
23 lines
615 B
Plaintext
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_br
|
|
{
|
|
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)
|