Browse Source

staging: rtl8192e use kmemdup and check its return value

use kmemdup instead of kmalloc and memcpy,
and check its return value

Signed-off-by: Xiaochen Wang <wangxiaochen0@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Xiaochen Wang 14 years ago
parent
commit
9603ff50b5
1 changed files with 3 additions and 2 deletions
  1. 3 2
      drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c

+ 3 - 2
drivers/staging/rtl8192e/ieee80211/ieee80211_softmac.c

@@ -1564,8 +1564,9 @@ static inline u16 auth_parse(struct sk_buff *skb, u8** challenge, int *chlen)
 
 		if(*(t++) == MFIE_TYPE_CHALLENGE){
 			*chlen = *(t++);
-			*challenge = kmalloc(*chlen, GFP_ATOMIC);
-			memcpy(*challenge, t, *chlen);
+			*challenge = kmemdup(t, *chlen, GFP_ATOMIC);
+			if (!*challenge)
+				return -ENOMEM;
 		}
 	}