| From: Colin Ian King <colin.king@canonical.com> |
| Date: Wed, 28 Feb 2018 11:28:49 +0000 |
| Subject: staging: rtl8192u: return -ENOMEM on failed allocation of |
| priv->oldaddr |
| |
| commit e1a7418529e33bc4efc346324557251a16a3e79b upstream. |
| |
| Currently the allocation of priv->oldaddr is not null checked which will |
| lead to subsequent errors when accessing priv->oldaddr. Fix this with |
| a null pointer check and a return of -ENOMEM on allocation failure. |
| |
| Detected with Coccinelle: |
| drivers/staging/rtl8192u/r8192U_core.c:1708:2-15: alloc with no test, |
| possible model on line 1723 |
| |
| Fixes: 8fc8598e61f6 ("Staging: Added Realtek rtl8192u driver to staging") |
| Signed-off-by: Colin Ian King <colin.king@canonical.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/staging/rtl8192u/r8192U_core.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/drivers/staging/rtl8192u/r8192U_core.c |
| +++ b/drivers/staging/rtl8192u/r8192U_core.c |
| @@ -1893,6 +1893,8 @@ static short rtl8192_usb_initendpoints(s |
| |
| priv->rx_urb[16] = usb_alloc_urb(0, GFP_KERNEL); |
| priv->oldaddr = kmalloc(16, GFP_KERNEL); |
| + if (!priv->oldaddr) |
| + return -ENOMEM; |
| oldaddr = priv->oldaddr; |
| align = ((long)oldaddr) & 3; |
| if (align) { |