projects
/
GitHub
/
moto-9609
/
android_kernel_motorola_exynos9610.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
df833b1
)
af_iucv: consider state IUCV_CLOSING when closing a socket
author
Ursula Braun
<ursula.braun@de.ibm.com>
Tue, 21 Apr 2009 06:04:20 +0000
(06:04 +0000)
committer
David S. Miller
<davem@davemloft.net>
Wed, 22 Apr 2009 06:43:13 +0000
(23:43 -0700)
Make sure a second invocation of iucv_sock_close() guarantees proper
freeing of an iucv path.
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/iucv/af_iucv.c
patch
|
blob
|
blame
|
history
diff --git
a/net/iucv/af_iucv.c
b/net/iucv/af_iucv.c
index 49e786535dc82aecf96b6eea4179864cdb0cee85..2941ee50393bb9e7d66fa33630810ae830442e47 100644
(file)
--- a/
net/iucv/af_iucv.c
+++ b/
net/iucv/af_iucv.c
@@
-172,6
+172,7
@@
static void iucv_sock_close(struct sock *sk)
err = iucv_sock_wait_state(sk, IUCV_CLOSED, 0, timeo);
}
+ case IUCV_CLOSING: /* fall through */
sk->sk_state = IUCV_CLOSED;
sk->sk_state_change(sk);
@@
-224,6
+225,8
@@
static struct sock *iucv_sock_alloc(struct socket *sock, int proto, gfp_t prio)
spin_lock_init(&iucv_sk(sk)->message_q.lock);
skb_queue_head_init(&iucv_sk(sk)->backlog_skb_q);
iucv_sk(sk)->send_tag = 0;
+ iucv_sk(sk)->path = NULL;
+ memset(&iucv_sk(sk)->src_user_id , 0, 32);
sk->sk_destruct = iucv_sock_destruct;
sk->sk_sndtimeo = IUCV_CONN_TIMEOUT;