kernel/drivers/net/netdevsim/dev.c
.. .. @@ -149,13 +149,10 @@ 149 149 cookie_len = (count - 1) / 2; 150 150 if ((count - 1) % 2) 151 151 return -EINVAL; 152 - buf = kmalloc(count, GFP_KERNEL | __GFP_NOWARN);153 - if (!buf)154 - return -ENOMEM;155 152 156 - ret = simple_write_to_buffer(buf, count, ppos, data, count);157 - if (ret < 0)158 - goto free_buf;153 + buf = memdup_user(data, count);154 + if (IS_ERR(buf))155 + return PTR_ERR(buf);159 156 160 157 fa_cookie = kmalloc(sizeof(*fa_cookie) + cookie_len, 161 158 GFP_KERNEL | __GFP_NOWARN);