]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/ppp_generic.c
drivers/net: Use memdup_user
[net-next-2.6.git] / drivers / net / ppp_generic.c
index 144375dea2deff1bc6b4393f2379cade82ae86bc..0db38946bc0a93b9b13f953b17b0182a0b321ddd 100644 (file)
@@ -538,14 +538,9 @@ static int get_filter(void __user *arg, struct sock_filter **p)
        }
 
        len = uprog.len * sizeof(struct sock_filter);
-       code = kmalloc(len, GFP_KERNEL);
-       if (code == NULL)
-               return -ENOMEM;
-
-       if (copy_from_user(code, uprog.filter, len)) {
-               kfree(code);
-               return -EFAULT;
-       }
+       code = memdup_user(uprog.filter, len);
+       if (IS_ERR(code))
+               return PTR_ERR(code);
 
        err = sk_chk_filter(code, uprog.len);
        if (err) {