V4L/DVB: drivers/media: Use memdup_user
[pandora-kernel.git] / drivers / media / dvb / dvb-core / dvb_demux.c
index 977ddba..4a88a3e 100644 (file)
@@ -1130,13 +1130,9 @@ static int dvbdmx_write(struct dmx_demux *demux, const char __user *buf, size_t
        if ((!demux->frontend) || (demux->frontend->source != DMX_MEMORY_FE))
                return -EINVAL;
 
-       p = kmalloc(count, GFP_USER);
-       if (!p)
-               return -ENOMEM;
-       if (copy_from_user(p, buf, count)) {
-               kfree(p);
-               return -EFAULT;
-       }
+       p = memdup_user(buf, count);
+       if (IS_ERR(p))
+               return PTR_ERR(p);
        if (mutex_lock_interruptible(&dvbdemux->mutex)) {
                kfree(p);
                return -ERESTARTSYS;