From e6c0a14c1c9389bec0ff0f6f2c77ff5d895f0cbf Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Sat, 22 May 2010 05:21:02 -0300 Subject: [PATCH] --- yaml --- r: 202039 b: refs/heads/master c: c6cfe05532cf6e9858d60ee699c51b906842489d h: refs/heads/master i: 202037: deb12ff75f78fbc48317e1c1698d5bc44097d00e 202035: 1b19c134f6a57db57bf09a4478e6f0002e5bee19 202031: 3a4a4194a810837e9458af436355a9e447b8ebb2 v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb/dvb-core/dvb_demux.c | 10 +++------- trunk/drivers/media/video/dabusb.c | 13 ++++--------- 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/[refs] b/[refs] index 81ab9d5054b0..fccd833f8ad5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3e9442c6f1d50bce083c5870f293647efbd6f828 +refs/heads/master: c6cfe05532cf6e9858d60ee699c51b906842489d diff --git a/trunk/drivers/media/dvb/dvb-core/dvb_demux.c b/trunk/drivers/media/dvb/dvb-core/dvb_demux.c index 977ddba3e235..4a88a3e4db2b 100644 --- a/trunk/drivers/media/dvb/dvb-core/dvb_demux.c +++ b/trunk/drivers/media/dvb/dvb-core/dvb_demux.c @@ -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; diff --git a/trunk/drivers/media/video/dabusb.c b/trunk/drivers/media/video/dabusb.c index 0f505086774c..5b176bd7afdb 100644 --- a/trunk/drivers/media/video/dabusb.c +++ b/trunk/drivers/media/video/dabusb.c @@ -706,16 +706,11 @@ static long dabusb_ioctl (struct file *file, unsigned int cmd, unsigned long arg switch (cmd) { case IOCTL_DAB_BULK: - pbulk = kmalloc(sizeof (bulk_transfer_t), GFP_KERNEL); + pbulk = memdup_user((void __user *)arg, + sizeof(bulk_transfer_t)); - if (!pbulk) { - ret = -ENOMEM; - break; - } - - if (copy_from_user (pbulk, (void __user *) arg, sizeof (bulk_transfer_t))) { - ret = -EFAULT; - kfree (pbulk); + if (IS_ERR(pbulk)) { + ret = PTR_ERR(pbulk); break; }