Messages in this thread Patch in this message | | | Date | Tue, 5 Nov 2002 18:54:33 +0100 | From | Balazs Scheidler <> | Subject | Re: [PATCH] unix domain sockets bugfix |
| |
2.4.20-rc1, still not working well for recvfrom() of unix-dgram sockets. It doesn't return 0 as the length of the sockaddr, checking out the code again makes me think that this is the problem:
--- socket.c.old Tue Nov 5 18:48:22 2002 +++ socket.c Tue Nov 5 18:49:34 2002 @@ -1262,7 +1262,7 @@ flags |= MSG_DONTWAIT; err=sock_recvmsg(sock, &msg, size, flags); - if(err >= 0 && addr != NULL && msg.msg_namelen) + if(err >= 0 && addr != NULL) { err2=move_addr_to_user(address, msg.msg_namelen, addr, addr_len); if(err2<0) --------- strace for the behaviour of the kernel:
> recvfrom(3, "<38>Nov 5 17:53:01 PAM_unix[952"..., 2048, 0, {sin_family=0xf80c /* AF_??? */, {sa_family=63500, sa_data="\377\27 > 7\6\351\4\10\10\270\5\10\360@\5\10"}, [256]) = 82
you can see that 256 is returned as the length of the sockaddr, and there's garbage in the sa_family field.
-- Bazsi PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |