diff options
Diffstat (limited to 'net/core/pktgen.c')
-rw-r--r-- | net/core/pktgen.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/net/core/pktgen.c b/net/core/pktgen.c index cc07c43..53c3097 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -476,14 +476,11 @@ static int pgctrl_show(struct seq_file *seq, void *v) static ssize_t pgctrl_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos) { - int err = 0; char data[128]; struct pktgen_net *pn = net_generic(current->nsproxy->net_ns, pg_net_id); - if (!capable(CAP_NET_ADMIN)) { - err = -EPERM; - goto out; - } + if (!capable(CAP_NET_ADMIN)) + return -EPERM; if (count == 0) return -EINVAL; @@ -491,10 +488,9 @@ static ssize_t pgctrl_write(struct file *file, const char __user *buf, if (count > sizeof(data)) count = sizeof(data); - if (copy_from_user(data, buf, count)) { - err = -EFAULT; - goto out; - } + if (copy_from_user(data, buf, count)) + return -EFAULT; + data[count - 1] = 0; /* Strip trailing '\n' and terminate string */ if (!strcmp(data, "stop")) @@ -509,10 +505,7 @@ static ssize_t pgctrl_write(struct file *file, const char __user *buf, else pr_warning("Unknown command: %s\n", data); - err = count; - -out: - return err; + return count; } static int pgctrl_open(struct inode *inode, struct file *file) |