From a51c6a6b42cd99eb2087f38ef123ba8a5691f0c8 Mon Sep 17 00:00:00 2001 From: Julia Lawall Date: Fri, 21 May 2010 22:26:04 +0000 Subject: [PATCH] --- yaml --- r: 202583 b: refs/heads/master c: 7d88950426da812a6ab93ee1bba821f7f0ec1766 h: refs/heads/master i: 202581: 1327613890808e6e6caa146421dd9ecc694e720f 202579: 14d00a0e16336127c55fd9938735093e06302fa8 202575: a5fc299e87937640cc01191f9f4d1ec285be95ed v: v3 --- [refs] | 2 +- trunk/drivers/net/wan/farsync.c | 14 ++++---------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index afdbbd920766..c84a0efd0e2d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 042604d2a3ee59c84f8293988caf35bac5de9eb3 +refs/heads/master: 7d88950426da812a6ab93ee1bba821f7f0ec1766 diff --git a/trunk/drivers/net/wan/farsync.c b/trunk/drivers/net/wan/farsync.c index e087b9a6daaa..43b77271532b 100644 --- a/trunk/drivers/net/wan/farsync.c +++ b/trunk/drivers/net/wan/farsync.c @@ -2038,16 +2038,10 @@ fst_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) /* Now copy the data to the card. */ - buf = kmalloc(wrthdr.size, GFP_KERNEL); - if (!buf) - return -ENOMEM; - - if (copy_from_user(buf, - ifr->ifr_data + sizeof (struct fstioc_write), - wrthdr.size)) { - kfree(buf); - return -EFAULT; - } + buf = memdup_user(ifr->ifr_data + sizeof(struct fstioc_write), + wrthdr.size); + if (IS_ERR(buf)) + return PTR_ERR(buf); memcpy_toio(card->mem + wrthdr.offset, buf, wrthdr.size); kfree(buf);