diff options
author | Santosh Nayak <santoshprasadnayak@gmail.com> | 2012-03-22 03:12:41 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-03-28 14:25:35 -0400 |
commit | e90c7e712980bf794f88f749e2a1270e4a4a116e (patch) | |
tree | e037a02e279b449c6889dcbee8b76424655f4036 | |
parent | 75836b8daefdde84f8b5dde1be5b67d858139df3 (diff) |
net: orinoco: add error handling for failed kmalloc().
With flag 'GFP_ATOMIC', probability of allocation failure is more.
Add error handling after kmalloc() call to avoid null dereference.
Signed-off-by: Santosh Nayak <santoshprasadnayak@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/orinoco/main.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/wireless/orinoco/main.c b/drivers/net/wireless/orinoco/main.c index dd6c64ac406e..88e3ad2d1db8 100644 --- a/drivers/net/wireless/orinoco/main.c +++ b/drivers/net/wireless/orinoco/main.c | |||
@@ -1336,6 +1336,10 @@ static void qbuf_scan(struct orinoco_private *priv, void *buf, | |||
1336 | unsigned long flags; | 1336 | unsigned long flags; |
1337 | 1337 | ||
1338 | sd = kmalloc(sizeof(*sd), GFP_ATOMIC); | 1338 | sd = kmalloc(sizeof(*sd), GFP_ATOMIC); |
1339 | if (!sd) { | ||
1340 | printk(KERN_ERR "%s: failed to alloc memory\n", __func__); | ||
1341 | return; | ||
1342 | } | ||
1339 | sd->buf = buf; | 1343 | sd->buf = buf; |
1340 | sd->len = len; | 1344 | sd->len = len; |
1341 | sd->type = type; | 1345 | sd->type = type; |
@@ -1353,6 +1357,10 @@ static void qabort_scan(struct orinoco_private *priv) | |||
1353 | unsigned long flags; | 1357 | unsigned long flags; |
1354 | 1358 | ||
1355 | sd = kmalloc(sizeof(*sd), GFP_ATOMIC); | 1359 | sd = kmalloc(sizeof(*sd), GFP_ATOMIC); |
1360 | if (!sd) { | ||
1361 | printk(KERN_ERR "%s: failed to alloc memory\n", __func__); | ||
1362 | return; | ||
1363 | } | ||
1356 | sd->len = -1; /* Abort */ | 1364 | sd->len = -1; /* Abort */ |
1357 | 1365 | ||
1358 | spin_lock_irqsave(&priv->scan_lock, flags); | 1366 | spin_lock_irqsave(&priv->scan_lock, flags); |