summaryrefslogtreecommitdiffstats
path: root/net/core/net-sysfs.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-01-07 20:53:13 +0000
committerArnd Bergmann <arnd@arndb.de>2012-01-07 20:53:13 +0000
commit23c4c1c7b0dd2ebeb90bb6851478c0e80fe9e6b8 (patch)
tree60ab5e96f1e6e0ddd46eadf34d8a83ae2d8db72a /net/core/net-sysfs.c
parente195ffbe4573f79d590e63e2ae32dac2a73d5768 (diff)
parent7b9dd47136c07ffd883aff6926c7b281e4c1eea4 (diff)
downloadtalos-op-linux-23c4c1c7b0dd2ebeb90bb6851478c0e80fe9e6b8.tar.gz
talos-op-linux-23c4c1c7b0dd2ebeb90bb6851478c0e80fe9e6b8.zip
Merge branch 'depends/rmk/for-linus' into next/soc
Conflicts: arch/arm/mach-tegra/board-dt-tegra20.c arch/arm/mach-tegra/common.c
Diffstat (limited to 'net/core/net-sysfs.c')
-rw-r--r--net/core/net-sysfs.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
index c71c434a4c05..385aefe53648 100644
--- a/net/core/net-sysfs.c
+++ b/net/core/net-sysfs.c
@@ -665,11 +665,14 @@ static ssize_t store_rps_dev_flow_table_cnt(struct netdev_rx_queue *queue,
if (count) {
int i;
- if (count > 1<<30) {
+ if (count > INT_MAX)
+ return -EINVAL;
+ count = roundup_pow_of_two(count);
+ if (count > (ULONG_MAX - sizeof(struct rps_dev_flow_table))
+ / sizeof(struct rps_dev_flow)) {
/* Enforce a limit to prevent overflow */
return -EINVAL;
}
- count = roundup_pow_of_two(count);
table = vmalloc(RPS_DEV_FLOW_TABLE_SIZE(count));
if (!table)
return -ENOMEM;
OpenPOWER on IntegriCloud