From 51c3389d83467bd80bc409c9a1fa5e3650bec02e Mon Sep 17 00:00:00 2001 From: Xi Wang Date: Sun, 26 Aug 2012 16:47:13 +0000 Subject: [PATCH] --- yaml --- r: 327739 b: refs/heads/master c: fc61b928dc4d72176cf4bd4d30bf1d22e599aefc h: refs/heads/master i: 327737: 29d4e9091806547ff2483dfc2af14d2a04bb390b 327735: 4adf6f2e3166bd5a2f568ab381041ee1f4ab6b1e v: v3 --- [refs] | 2 +- trunk/net/unix/af_unix.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index d94d59355590..7975091bb1e3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 46b66d7077b89fb4917ceef19b3f7dd86055c94a +refs/heads/master: fc61b928dc4d72176cf4bd4d30bf1d22e599aefc diff --git a/trunk/net/unix/af_unix.c b/trunk/net/unix/af_unix.c index c5ee4ff61364..8a84ab64cafd 100644 --- a/trunk/net/unix/af_unix.c +++ b/trunk/net/unix/af_unix.c @@ -2060,10 +2060,14 @@ static int unix_shutdown(struct socket *sock, int mode) struct sock *sk = sock->sk; struct sock *other; - mode = (mode+1)&(RCV_SHUTDOWN|SEND_SHUTDOWN); - - if (!mode) - return 0; + if (mode < SHUT_RD || mode > SHUT_RDWR) + return -EINVAL; + /* This maps: + * SHUT_RD (0) -> RCV_SHUTDOWN (1) + * SHUT_WR (1) -> SEND_SHUTDOWN (2) + * SHUT_RDWR (2) -> SHUTDOWN_MASK (3) + */ + ++mode; unix_state_lock(sk); sk->sk_shutdown |= mode;