Messages in this thread | | | Date | Tue, 21 Feb 2012 22:02:24 -0800 | From | "H. Peter Anvin" <> | Subject | Re: compat: autofs v5 packet size ambiguity - update |
| |
On 02/21/2012 09:43 PM, Ian Kent wrote: > > However, with the final "char name[NAME_MAX+1]" array at the end, the > actual size of the structure ends up being not very well defined: > because the struct isn't marked 'packed', doing a "sizeof()" on it will > align the size of the struct up to the biggest alignment of the members > it has. >
Note that it's really rather unfortunate that this transmits the entire packet no matter what, which also means that the "len" field is actually completely and totally pointless.
I have mentioned in the past that I consider it a design mistake on my part to have used a pipe in the first place: it was "so easy", but required an extra read for no good reason, or padding to fixed size resulting in this problem. The right thing really should have been to use a Unix datagram socket; these days using SOCK_SEQPACKET - that way the kernel would give you the right semantics by design.
-hpa
-- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf.
| |