Module: xenomai-3 Branch: wip/rtnet-fixes Commit: de3677ba112349317eef8459a6d2dd5ae3514163 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=de3677ba112349317eef8459a6d2dd5ae3514163
Author: Philippe Gerum <r...@xenomai.org> Date: Tue Dec 5 10:36:07 2017 +0100 net/packet: recvmsg: write back namelen only if name required --- kernel/drivers/net/stack/packet/af_packet.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/kernel/drivers/net/stack/packet/af_packet.c b/kernel/drivers/net/stack/packet/af_packet.c index ff3ef33..f248239 100644 --- a/kernel/drivers/net/stack/packet/af_packet.c +++ b/kernel/drivers/net/stack/packet/af_packet.c @@ -335,12 +335,6 @@ rt_packet_recvmsg(struct rtdm_fd *fd, struct user_msghdr *msg, int msg_flags) rtskb = rtskb_dequeue_chain(&sock->incoming); RTNET_ASSERT(rtskb != NULL, return -EFAULT;); - /* copy the address */ - namelen = sizeof(sll); - ret = rtnet_put_arg(fd, &msg->msg_namelen, &namelen, sizeof(namelen)); - if (ret) - goto fail; - /* copy the address if required. */ if (msg->msg_name) { struct rtnet_device *rtdev = rtskb->rtdev; @@ -357,6 +351,11 @@ rt_packet_recvmsg(struct rtdm_fd *fd, struct user_msghdr *msg, int msg_flags) ret = rtnet_put_arg(fd, &msg->msg_name, &sll, sizeof(sll)); if (ret) goto fail; + + namelen = sizeof(sll); + ret = rtnet_put_arg(fd, &msg->msg_namelen, &namelen, sizeof(namelen)); + if (ret) + goto fail; } /* Include the header in raw delivery */ _______________________________________________ Xenomai-git mailing list Xenomai-git@xenomai.org https://xenomai.org/mailman/listinfo/xenomai-git