rtl8192se: Fix BUG caused by failure to check skb allocation
When downloading firmware into the device, the driver fails to check the return when allocating an skb. When the allocation fails, a BUG can be generated, as seen in https://bugzilla.redhat.com/show_bug.cgi?id=771656. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Cc: Stable <stable@vger.kernel.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
874c60bad9
commit
d90db4b12b
@@ -196,6 +196,8 @@ static bool _rtl92s_firmware_downloadcode(struct ieee80211_hw *hw,
|
|||||||
/* Allocate skb buffer to contain firmware */
|
/* Allocate skb buffer to contain firmware */
|
||||||
/* info and tx descriptor info. */
|
/* info and tx descriptor info. */
|
||||||
skb = dev_alloc_skb(frag_length);
|
skb = dev_alloc_skb(frag_length);
|
||||||
|
if (!skb)
|
||||||
|
return false;
|
||||||
skb_reserve(skb, extra_descoffset);
|
skb_reserve(skb, extra_descoffset);
|
||||||
seg_ptr = (u8 *)skb_put(skb, (u32)(frag_length -
|
seg_ptr = (u8 *)skb_put(skb, (u32)(frag_length -
|
||||||
extra_descoffset));
|
extra_descoffset));
|
||||||
@@ -573,6 +575,8 @@ static bool _rtl92s_firmware_set_h2c_cmd(struct ieee80211_hw *hw, u8 h2c_cmd,
|
|||||||
|
|
||||||
len = _rtl92s_get_h2c_cmdlen(MAX_TRANSMIT_BUFFER_SIZE, 1, &cmd_len);
|
len = _rtl92s_get_h2c_cmdlen(MAX_TRANSMIT_BUFFER_SIZE, 1, &cmd_len);
|
||||||
skb = dev_alloc_skb(len);
|
skb = dev_alloc_skb(len);
|
||||||
|
if (!skb)
|
||||||
|
return false;
|
||||||
cb_desc = (struct rtl_tcb_desc *)(skb->cb);
|
cb_desc = (struct rtl_tcb_desc *)(skb->cb);
|
||||||
cb_desc->queue_index = TXCMD_QUEUE;
|
cb_desc->queue_index = TXCMD_QUEUE;
|
||||||
cb_desc->cmd_or_init = DESC_PACKET_TYPE_NORMAL;
|
cb_desc->cmd_or_init = DESC_PACKET_TYPE_NORMAL;
|
||||||
|
Reference in New Issue
Block a user