El miércoles, 9 de noviembre de 2005 09:25, Petr Salinger escribió: [...] > this bug started as > http://lists.alioth.debian.org/pipermail/glibc-bsd-devel/2005-November/000628.html > > On debian/kFreeBSD is not defined HasBSD44Sockets. > It shouldn't be problem because FreeBSD kernel 5.4 and 6.0 > tries to be compatible with older (BSD43) source code > and at least in connect(), bind() ignores value in the field sun_len. > It uses only the value addrlen from function in system call. > > Unfortunately, we are hitted by computing the whole name length as > namelen = strlen(sockname.sun_path) + sizeof(sockname.sun_family); > instead of portable > namelen = strlen(sockname.sun_path) + offsetof(struct sockaddr_un, > sun_path); [..] > Submitted also upstream in > https://bugs.freedesktop.org/show_bug.cgi?id=4982
Hello, Petr. Have you seen the annotation that Aurelien did on Jan 2nd
in the
upstream bug report?:
==========
Actually according to POSIX1.2004, you don't even't need to use strlen and
offsetof, you can use sizeof(struct sockaddr_un) instead. Tested with a
FreeBSD kernel and a Linux kernel.
POSIX1.2004, page 263 says:
"address_len Specifies the length of the sockaddr structure pointed to by
the address argument."
==========
Anyway, I am applying your patch, as it is correct for you, until you
have
some time to review the changes Aurelien proposes.
Best regards,
Ender.
--
Network engineer
Debian Developer
pgpKz6cpSTsVK.pgp
Description: PGP signature

