Commit fc61b928 authored by Xi Wang's avatar Xi Wang Committed by David S. Miller

af_unix: fix shutdown parameter checking

Return -EINVAL rather than 0 given an invalid "mode" parameter.
Signed-off-by: default avatarXi Wang <xi.wang@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 46b66d70
...@@ -2060,10 +2060,14 @@ static int unix_shutdown(struct socket *sock, int mode) ...@@ -2060,10 +2060,14 @@ static int unix_shutdown(struct socket *sock, int mode)
struct sock *sk = sock->sk; struct sock *sk = sock->sk;
struct sock *other; struct sock *other;
mode = (mode+1)&(RCV_SHUTDOWN|SEND_SHUTDOWN); if (mode < SHUT_RD || mode > SHUT_RDWR)
return -EINVAL;
if (!mode) /* This maps:
return 0; * SHUT_RD (0) -> RCV_SHUTDOWN (1)
* SHUT_WR (1) -> SEND_SHUTDOWN (2)
* SHUT_RDWR (2) -> SHUTDOWN_MASK (3)
*/
++mode;
unix_state_lock(sk); unix_state_lock(sk);
sk->sk_shutdown |= mode; sk->sk_shutdown |= mode;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment