Benjamin Herrenschmidt schrieb:
On Tue, 2012-05-01 at 00:32 +0200, Jan Seiffert wrote:
quoted
*shudder*
Link to another lib for only one function because....
http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/net/bpf.h?rev=1.59&content-type=text/x-cvsweb-markup&only_with_tag=MAIN
The "Original" says it's an u_int.
But i guess it is unfixable without breaking something, except with ugly code.
Should the padding at least be made explicit in the in-kernel struct?
Did anyone ever tested the 32bit on 64bit compat code (different padding)?
Haven't tested no. A quick google pointed to 2 web pages telling people
to do the wrong thing and 4 broken programs out there, interestingly in
different ways :-) (somebody's doing a reinterpret_cast of one struct
into another, somebody does his/her own local redefinition of the
struct ... using a ulong !, etc....)
Ouch!
I don't see a good way to sort that out other than introducing a new
kernel-side structure, change the sockopt number, and support the old
one as backward binary compat, but that's gross.
But a sane way forward?
BTW, has anyone checked the new syscall filter code for these ... misfortunes?
I mean before the ABI is set in stone...
Cheers,
Ben.
Greetings
Jan
--
😉