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
next prev 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).