[krbdev.mit.edu #6010] krb5int_gic_opte_copy should copy elements individually
Ken Raeburn via RT
rt-comment at krbdev.mit.edu
Wed Jul 9 12:41:41 EDT 2008
On Jul 8, 2008, at 19:40, Tom Yu via RT wrote:
> On most platforms, the memcpy() should work because the structure
> layouts are identical for their initial overlapping elements. (The C
> standard does not guarantee this.) On the Mac, the use of "#pragma
> pack" could cause a difference in structure layout.
>
> We need to investigate whether this constitutes an ABI change on the
> Mac. Given that a caller can receive a new structure type-punned to
> the old one, I believe it is an ABI change.
Yes, I believe it is as well. I think the only way to avoid that is a
Mac-specific "#pragma pack" for the extended version of the structure
too. It will have no effect on other platforms, and the only Mac code
it could break would be code trying to explicitly set one field after
the extended structure has been put into use, and somehow relying on
the fact that it *doesn't* set the intended field, but overwrites
something else. I won't lose any sleep over breaking such programs. :)
Ken
More information about the krb5-bugs
mailing list