-----Original Message----- From: kernelnewbies-bounces@kernelnewbies.org [mailto:kernelnewbies-bounces@kernelnewbies.org] On Behalf Of Nick Krause Sent: Tuesday, August 12, 2014 1:20 PM To: kernelnewbies Subject: Re: [PATCHv3] staging: Check for Null allocated skb in fw_download_code
On Tue, Aug 12, 2014 at 4:18 PM, Nicholas Krause <xerofoify@gmail.com> wrote:
I am fixing the bug entry , https://bugzilla.kernel.org/show_bug.cgi?id=60461. This entry states that we are not checking the skb allocated in fw_download_code for NULL and after checking it ,I fixed it to check for the NULL value before returning false and exiting fw_download_code cleanly. In additon I removed the variable, rt_status as it's easier to read this function's return value with just true or false and rt status is a unneeded variable for the bool return of this function.
Signed-off-by: Nicholas Krause <xerofoify@gmail.com> --- drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c index 1a95d1f..66d83f8 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c @@ -36,7 +36,6 @@ static bool fw_download_code(struct net_device *dev, u8 *code_virtual_address, u32 buffer_len) { struct r8192_priv *priv = rtllib_priv(dev); - bool rt_status = true; u16 frag_threshold; u16 frag_length, frag_offset = 0; int i; @@ -61,6 +60,8 @@ static bool fw_download_code(struct net_device *dev, u8 *code_virtual_address, }
skb = dev_alloc_skb(frag_length + 4); + if (skb == NULL) + return false; memcpy((unsigned char *)(skb->cb), &dev, sizeof(dev)); tcb_desc = (struct cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE); tcb_desc->queue_index = TXCMD_QUEUE; @@ -99,7 +100,7 @@ static bool fw_download_code(struct net_device *dev, u8 *code_virtual_address,
write_nic_byte(dev, TPPoll, TPPoll_CQ);
- return rt_status; + return true; }
static bool CPUcheck_maincodeok_turnonCPU(struct net_device *dev) -- 1.9.1
I am trying to get this patch merged and after my issues with the kernel community, I can't get this into the mainline. If someone wants to send it out for me and state it's from me that would be great. Nick
While the avoidance of dereferencing NULL pointers in the kernel is a laudable goal, what will be the effect of the call to write_nic_byte() at the end of the function not happening should the call to dev_alloc_skb() return NULL? Jeff Haran