X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fiucv%2Faf_iucv.c;h=f95145c3ec49d18880c845e37ff5a3dc5e67dab4;hb=b18ae2b01891a7d279c241202f88447919eecdf8;hp=274d150320c0f52b0b88fbc5b1c1817bd45cfc24;hpb=403299a8515c56db58454c57712f4dc96d6c1fde;p=pandora-kernel.git diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c index 274d150320c0..f95145c3ec49 100644 --- a/net/iucv/af_iucv.c +++ b/net/iucv/af_iucv.c @@ -380,7 +380,6 @@ static int afiucv_hs_send(struct iucv_message *imsg, struct sock *sock, skb_trim(skb, skb->dev->mtu); } skb->protocol = ETH_P_AF_IUCV; - skb_shinfo(skb)->tx_flags |= SKBTX_DRV_NEEDS_SK_REF; nskb = skb_clone(skb, GFP_ATOMIC); if (!nskb) return -ENOMEM; @@ -706,7 +705,8 @@ static int iucv_sock_bind(struct socket *sock, struct sockaddr *addr, char uid[9]; /* Verify the input sockaddr */ - if (!addr || addr->sa_family != AF_IUCV) + if (addr_len < sizeof(struct sockaddr_iucv) || + addr->sa_family != AF_IUCV) return -EINVAL; lock_sock(sk); @@ -877,7 +877,7 @@ static int iucv_sock_connect(struct socket *sock, struct sockaddr *addr, struct iucv_sock *iucv = iucv_sk(sk); int err; - if (addr->sa_family != AF_IUCV || alen < sizeof(struct sockaddr_iucv)) + if (alen < sizeof(struct sockaddr_iucv) || addr->sa_family != AF_IUCV) return -EINVAL; if (sk->sk_state != IUCV_OPEN && sk->sk_state != IUCV_BOUND)