Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d90db4b1 authored by Larry Finger's avatar Larry Finger Committed by John W. Linville
Browse files

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: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Cc: Stable <stable@vger.kernel.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 874c60ba
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -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;