diff options
Diffstat (limited to 'net/ax25')
| -rw-r--r-- | net/ax25/af_ax25.c | 8 | ||||
| -rw-r--r-- | net/ax25/ax25_in.c | 2 | 
2 files changed, 5 insertions, 5 deletions
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c index 4b4d2b779ec..c35c3f48fc0 100644 --- a/net/ax25/af_ax25.c +++ b/net/ax25/af_ax25.c @@ -1435,7 +1435,7 @@ out:  static int ax25_sendmsg(struct kiocb *iocb, struct socket *sock,  			struct msghdr *msg, size_t len)  { -	struct sockaddr_ax25 *usax = (struct sockaddr_ax25 *)msg->msg_name; +	DECLARE_SOCKADDR(struct sockaddr_ax25 *, usax, msg->msg_name);  	struct sock *sk = sock->sk;  	struct sockaddr_ax25 sax;  	struct sk_buff *skb; @@ -1636,11 +1636,11 @@ static int ax25_recvmsg(struct kiocb *iocb, struct socket *sock,  	skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); -	if (msg->msg_namelen != 0) { -		struct sockaddr_ax25 *sax = (struct sockaddr_ax25 *)msg->msg_name; +	if (msg->msg_name) {  		ax25_digi digi;  		ax25_address src;  		const unsigned char *mac = skb_mac_header(skb); +		DECLARE_SOCKADDR(struct sockaddr_ax25 *, sax, msg->msg_name);  		memset(sax, 0, sizeof(struct full_sockaddr_ax25));  		ax25_addr_parse(mac + 1, skb->data - mac - 1, &src, NULL, @@ -1735,7 +1735,7 @@ static int ax25_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)  			res = -EFAULT;  			break;  		} -		if (amount > AX25_NOUID_BLOCK) { +		if (amount < 0 || amount > AX25_NOUID_BLOCK) {  			res = -EINVAL;  			break;  		} diff --git a/net/ax25/ax25_in.c b/net/ax25/ax25_in.c index 96f4cab3a2f..7ed8ab72481 100644 --- a/net/ax25/ax25_in.c +++ b/net/ax25/ax25_in.c @@ -422,7 +422,7 @@ static int ax25_rcv(struct sk_buff *skb, struct net_device *dev,  	if (sk) {  		if (!sock_flag(sk, SOCK_DEAD)) -			sk->sk_data_ready(sk, skb->len); +			sk->sk_data_ready(sk);  		sock_put(sk);  	} else {  free:  | 
