git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ipx: call ipxitf_put() in ioctl error path
[pandora-kernel.git]
/
net
/
ipx
/
af_ipx.c
diff --git
a/net/ipx/af_ipx.c
b/net/ipx/af_ipx.c
index
9680226
..
a26ed1e
100644
(file)
--- a/
net/ipx/af_ipx.c
+++ b/
net/ipx/af_ipx.c
@@
-1194,11
+1194,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));
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)))
if (copy_to_user(arg, &ifr, sizeof(ifr)))
-
break
;
+
rc = -EFAULT
;
ipxitf_put(ipxif);
ipxitf_put(ipxif);
- rc = 0;
break;
}
case SIOCAIPXITFCRT:
break;
}
case SIOCAIPXITFCRT:
@@
-1835,8
+1834,6
@@
static int ipx_recvmsg(struct kiocb *iocb, struct socket *sock,
if (skb->tstamp.tv64)
sk->sk_stamp = skb->tstamp;
if (skb->tstamp.tv64)
sk->sk_stamp = skb->tstamp;
- msg->msg_namelen = sizeof(*sipx);
-
if (sipx) {
sipx->sipx_family = AF_IPX;
sipx->sipx_port = ipx->ipx_source.sock;
if (sipx) {
sipx->sipx_family = AF_IPX;
sipx->sipx_port = ipx->ipx_source.sock;
@@
-1844,6
+1841,7
@@
static int ipx_recvmsg(struct kiocb *iocb, struct socket *sock,
sipx->sipx_network = IPX_SKB_CB(skb)->ipx_source_net;
sipx->sipx_type = ipx->ipx_type;
sipx->sipx_zero = 0;
sipx->sipx_network = IPX_SKB_CB(skb)->ipx_source_net;
sipx->sipx_type = ipx->ipx_type;
sipx->sipx_zero = 0;
+ msg->msg_namelen = sizeof(*sipx);
}
rc = copied;
}
rc = copied;