diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c index 0af7f54e4f617f04c7dbab24e09a6b53fc4c9dd2..af648e08e61b7f279dd99b8e87797148d746dd2a 100644 --- a/net/wireless/wext-core.c +++ b/net/wireless/wext-core.c @@ -780,8 +780,10 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd, if (cmd == SIOCSIWENCODEEXT) { struct iw_encode_ext *ee = (void *) extra; - if (iwp->length < sizeof(*ee) + ee->key_len) - return -EFAULT; + if (iwp->length < sizeof(*ee) + ee->key_len) { + err = -EFAULT; + goto out; + } } }