diff options
Diffstat (limited to 'net/rose/af_rose.c')
-rw-r--r-- | net/rose/af_rose.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c index e98fcfbe6007..33af77246bfe 100644 --- a/net/rose/af_rose.c +++ b/net/rose/af_rose.c | |||
@@ -1216,7 +1216,6 @@ static int rose_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
1216 | { | 1216 | { |
1217 | struct sock *sk = sock->sk; | 1217 | struct sock *sk = sock->sk; |
1218 | struct rose_sock *rose = rose_sk(sk); | 1218 | struct rose_sock *rose = rose_sk(sk); |
1219 | struct sockaddr_rose *srose = (struct sockaddr_rose *)msg->msg_name; | ||
1220 | size_t copied; | 1219 | size_t copied; |
1221 | unsigned char *asmptr; | 1220 | unsigned char *asmptr; |
1222 | struct sk_buff *skb; | 1221 | struct sk_buff *skb; |
@@ -1252,8 +1251,11 @@ static int rose_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
1252 | 1251 | ||
1253 | skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); | 1252 | skb_copy_datagram_iovec(skb, 0, msg->msg_iov, copied); |
1254 | 1253 | ||
1255 | if (srose != NULL) { | 1254 | if (msg->msg_name) { |
1256 | memset(srose, 0, msg->msg_namelen); | 1255 | struct sockaddr_rose *srose; |
1256 | |||
1257 | memset(msg->msg_name, 0, sizeof(struct full_sockaddr_rose)); | ||
1258 | srose = msg->msg_name; | ||
1257 | srose->srose_family = AF_ROSE; | 1259 | srose->srose_family = AF_ROSE; |
1258 | srose->srose_addr = rose->dest_addr; | 1260 | srose->srose_addr = rose->dest_addr; |
1259 | srose->srose_call = rose->dest_call; | 1261 | srose->srose_call = rose->dest_call; |