netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ivan Vecera <ivecera@redhat.com>
To: netdev@vger.kernel.org
Cc: rasesh.mody@qlogic.com, joe@perches.com
Subject: [PATCH net-next v2 14/19] bna: use memdup_user to copy userspace buffers
Date: Thu, 11 Jun 2015 15:52:26 +0200	[thread overview]
Message-ID: <1434030751-28835-15-git-send-email-ivecera@redhat.com> (raw)
In-Reply-To: <1434030751-28835-1-git-send-email-ivecera@redhat.com>

Patch converts kzalloc->copy_from_user sequence to memdup_user. There
is also one useless assignment of NULL to bnad->regdata as it is followed
by assignment of kzalloc output.

Signed-off-by: Ivan Vecera <ivecera@redhat.com>
---
 drivers/net/ethernet/brocade/bna/bnad_debugfs.c | 27 ++++++++-----------------
 1 file changed, 8 insertions(+), 19 deletions(-)

diff --git a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
index 72c8955..ad7af5c 100644
--- a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
+++ b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
@@ -321,15 +321,10 @@ bnad_debugfs_write_regrd(struct file *file, const char __user *buf,
 	unsigned long flags;
 	void *kern_buf;
 
-	/* Allocate memory to store the user space buf */
-	kern_buf = kzalloc(nbytes, GFP_KERNEL);
-	if (!kern_buf)
-		return -ENOMEM;
-
-	if (copy_from_user(kern_buf, (void  __user *)buf, nbytes)) {
-		kfree(kern_buf);
-		return -ENOMEM;
-	}
+	/* Copy the user space buf */
+	kern_buf = memdup_user(buf, nbytes);
+	if (IS_ERR(kern_buf))
+		return PTR_ERR(kern_buf);
 
 	rc = sscanf(kern_buf, "%x:%x", &addr, &len);
 	if (rc < 2) {
@@ -341,7 +336,6 @@ bnad_debugfs_write_regrd(struct file *file, const char __user *buf,
 
 	kfree(kern_buf);
 	kfree(bnad->regdata);
-	bnad->regdata = NULL;
 	bnad->reglen = 0;
 
 	bnad->regdata = kzalloc(len << 2, GFP_KERNEL);
@@ -388,15 +382,10 @@ bnad_debugfs_write_regwr(struct file *file, const char __user *buf,
 	unsigned long flags;
 	void *kern_buf;
 
-	/* Allocate memory to store the user space buf */
-	kern_buf = kzalloc(nbytes, GFP_KERNEL);
-	if (!kern_buf)
-		return -ENOMEM;
-
-	if (copy_from_user(kern_buf, (void  __user *)buf, nbytes)) {
-		kfree(kern_buf);
-		return -ENOMEM;
-	}
+	/* Copy the user space buf */
+	kern_buf = memdup_user(buf, nbytes);
+	if (IS_ERR(kern_buf))
+		return PTR_ERR(kern_buf);
 
 	rc = sscanf(kern_buf, "%x:%x", &addr, &val);
 	if (rc < 2) {
-- 
2.3.6

  parent reply	other threads:[~2015-06-11 13:52 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-11 13:52 [PATCH net-next v2 00/19] bna: clean-up Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 01/19] bna: use ether_addr_copy instead of memcpy Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 02/19] bna: get rid of mac_t Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 03/19] bna: replace pragma(pack) with attribute __packed Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 04/19] bna: get rid of duplicate and unused macros Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 05/19] bna: use BIT(x) instead of (1 << x) Ivan Vecera
2015-06-12 13:30   ` David Laight
2015-06-16  8:43     ` Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 06/19] bna: remove unused cbfn parameter Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 07/19] bna: remove pause_cbfn from struct bna_enet Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 08/19] bna: remove oper_state_cbfn from struct bna_rxf Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 09/19] bna: remove prio_change_cbfn oper_state_cbfn from struct bna_tx Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 10/19] bna: remove RXF_E_PAUSE and RXF_E_RESUME events Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 11/19] bna: remove paused from bna_rx_config and flags from bna_rxf Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 12/19] bna: remove TX_E_PRIO_CHANGE event and BNA_TX_F_PRIO_CHANGED flag Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 13/19] bna: correct comparisons/assignments to bool Ivan Vecera
2015-06-11 13:52 ` Ivan Vecera [this message]
2015-06-11 13:52 ` [PATCH net-next v2 15/19] bna: remove useless pointer assignment Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 16/19] bna: get rid of private macros for manipulation with lists Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 17/19] bna: use list_for_each_entry where appropriate Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 18/19] bna: fix timeout API argument type Ivan Vecera
2015-06-11 13:52 ` [PATCH net-next v2 19/19] bna: use netdev_* and dev_* instead of printk and pr_* Ivan Vecera
2015-06-11 22:57 ` [PATCH net-next v2 00/19] bna: clean-up David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1434030751-28835-15-git-send-email-ivecera@redhat.com \
    --to=ivecera@redhat.com \
    --cc=joe@perches.com \
    --cc=netdev@vger.kernel.org \
    --cc=rasesh.mody@qlogic.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).