| From cc4ac60d80695f392e5f1bee81b9c16cec6aeea2 Mon Sep 17 00:00:00 2001 |
| From: Nelson Elhage <nelhage@ksplice.com> |
| Date: Wed, 8 Dec 2010 10:13:55 -0800 |
| Subject: [PATCH] econet: Do the correct cleanup after an unprivileged |
| SIOCSIFADDR. |
| |
| commit 0c62fc6dd02c8d793c75ae76a9b6881fc36388ad upstream |
| |
| We need to drop the mutex and do a dev_put, so set an error code and break like |
| the other paths, instead of returning directly. |
| |
| Signed-off-by: Nelson Elhage <nelhage@ksplice.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/net/econet/af_econet.c b/net/econet/af_econet.c |
| index 2e41c76..e40e6b0 100644 |
| --- a/net/econet/af_econet.c |
| +++ b/net/econet/af_econet.c |
| @@ -661,8 +661,10 @@ static int ec_dev_ioctl(struct socket *sock, unsigned int cmd, void __user *arg) |
| err = 0; |
| switch (cmd) { |
| case SIOCSIFADDR: |
| - if (!capable(CAP_NET_ADMIN)) |
| - return -EPERM; |
| + if (!capable(CAP_NET_ADMIN)) { |
| + err = -EPERM; |
| + break; |
| + } |
| |
| edev = dev->ec_ptr; |
| if (edev == NULL) { |
| -- |
| 1.7.4.4 |
| |