diff options
Diffstat (limited to '0001-ipx-call-ipxitf_put-in-ioctl-error-path.patch')
-rw-r--r-- | 0001-ipx-call-ipxitf_put-in-ioctl-error-path.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/0001-ipx-call-ipxitf_put-in-ioctl-error-path.patch b/0001-ipx-call-ipxitf_put-in-ioctl-error-path.patch new file mode 100644 index 000000000..ca809297a --- /dev/null +++ b/0001-ipx-call-ipxitf_put-in-ioctl-error-path.patch @@ -0,0 +1,38 @@ +From ee0d8d8482345ff97a75a7d747efc309f13b0d80 Mon Sep 17 00:00:00 2001 +From: Dan Carpenter <dan.carpenter@oracle.com> +Date: Tue, 2 May 2017 13:58:53 +0300 +Subject: [PATCH] ipx: call ipxitf_put() in ioctl error path +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +We should call ipxitf_put() if the copy_to_user() fails. + +Reported-by: 李强 <liqiang6-s@360.cn> +Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + net/ipx/af_ipx.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/net/ipx/af_ipx.c b/net/ipx/af_ipx.c +index 8a9219f..fa31ef2 100644 +--- a/net/ipx/af_ipx.c ++++ b/net/ipx/af_ipx.c +@@ -1168,11 +1168,10 @@ static int ipxitf_ioctl(unsigned int cmd, void __user *arg) + sipx->sipx_network = ipxif->if_netnum; + memcpy(sipx->sipx_node, ipxif->if_node, + sizeof(sipx->sipx_node)); +- rc = -EFAULT; ++ rc = 0; + if (copy_to_user(arg, &ifr, sizeof(ifr))) +- break; ++ rc = -EFAULT; + ipxitf_put(ipxif); +- rc = 0; + break; + } + case SIOCAIPXITFCRT: +-- +2.9.3 + |