Re: locking down struct size/layout in remote-protocol.x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/07/2010 04:14 AM, Daniel P. Berrange wrote:
>> Are we sure migration between 32-bit and 64-bit hypervisors works?  And
>> if it does, then these structs don't quite match what is actually sent
>> over the wire.  At any rate,
> 
> Yes, the XDR protocol encoding is architecture + wordsize independant. The
> struct sizes won't match what is sent on the wire, and the latter is the thing
> we actually need to verify.
> 
> Perhaps marking all structs with __attribute__((packed))  will make then
> architecture invariant enough for checking of the struct to suffice.

No, __attribute__((packed)) won't help; the fundamental difference is
that pointers change from 4 bytes to 8 bytes between the two platforms,
whether or not you also pack out the extra holes when passing things
like uint8_t.

But Jim's suggestion of just normalizing field names and types is
reasonable, since the whole point of the .x file is that names and types
are enough to generate the code that does the conversion from struct to
on-the-wire format.

-- 
Eric Blake   eblake@xxxxxxxxxx    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]