Subject: Re: Linux socket emulation change (was: CVS commit: src/sys/compat/linux/common)
To: None <tech-net@netbsd.org>
From: Jaromir Dolecek <jdolecek@NetBSD.org>
List: tech-net
Date: 09/14/2004 07:18:53
Matthias Scheler wrote:
> This change is not correct. Calling connect() with an AF_UNSPEC
> sockaddr is well defined(*) interface to unconnect a UDP socket. Your
> code changes have broken this. Please fix this issue and supply and
> additional commit message which addresses this bug. I suggest that you
> move the "bdom == AF_UNSPEC" hack linux_sys_bind() or add a boolean
> argument to linux_sa_get() which allows to (de)activate it.

Try this - it doesn't work even for native NetBSD binaries. If address
family is set to zero and socket length is provided in the passed
sockaddr, it hits the sockargs() COMPAT_43 compatibility condition
and the values are swapped, which results in EAFNOSUPPORT error further
down.

Jaromir
-- 
Jaromir Dolecek <jdolecek@NetBSD.org>            http://www.NetBSD.cz/
-=- We should be mindful of the potential goal, but as the Buddhist -=-
-=- masters say, ``You may notice during meditation that you        -=-
-=- sometimes levitate or glow.   Do not let this distract you.''   -=-