diff options
Diffstat (limited to 'net/iucv')
-rw-r--r-- | net/iucv/af_iucv.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c index 05112094d76b..ac033e413bc5 100644 --- a/net/iucv/af_iucv.c +++ b/net/iucv/af_iucv.c | |||
@@ -715,10 +715,8 @@ static int iucv_sock_bind(struct socket *sock, struct sockaddr *addr, | |||
715 | char uid[9]; | 715 | char uid[9]; |
716 | 716 | ||
717 | /* Verify the input sockaddr */ | 717 | /* Verify the input sockaddr */ |
718 | if (!addr || addr->sa_family != AF_IUCV) | 718 | if (addr_len < sizeof(struct sockaddr_iucv) || |
719 | return -EINVAL; | 719 | addr->sa_family != AF_IUCV) |
720 | |||
721 | if (addr_len < sizeof(struct sockaddr_iucv)) | ||
722 | return -EINVAL; | 720 | return -EINVAL; |
723 | 721 | ||
724 | lock_sock(sk); | 722 | lock_sock(sk); |
@@ -862,7 +860,7 @@ static int iucv_sock_connect(struct socket *sock, struct sockaddr *addr, | |||
862 | struct iucv_sock *iucv = iucv_sk(sk); | 860 | struct iucv_sock *iucv = iucv_sk(sk); |
863 | int err; | 861 | int err; |
864 | 862 | ||
865 | if (addr->sa_family != AF_IUCV || alen < sizeof(struct sockaddr_iucv)) | 863 | if (alen < sizeof(struct sockaddr_iucv) || addr->sa_family != AF_IUCV) |
866 | return -EINVAL; | 864 | return -EINVAL; |
867 | 865 | ||
868 | if (sk->sk_state != IUCV_OPEN && sk->sk_state != IUCV_BOUND) | 866 | if (sk->sk_state != IUCV_OPEN && sk->sk_state != IUCV_BOUND) |