mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
blockjob: avoid compiler uncertainty in info sizing
We have a policy of avoiding enum types in structs in our public API, because it is possible for a client to choose compiler options that can change the in-memory ABI of that struct based on whether the enum value occupies an int or a minimal size. But we missed this for virDomainBlockJobInfo. We got lucky on little-endian machines - if the enum fits minimal size (a char), we still end up padding to the next long before the next field; but on big-endian, a client interpreting the enum as a char would always see 0 when the server supplies contents as an int. * include/libvirt/libvirt.h.in (virDomainBlockJobInfo): Enforce particular sizing. Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
3de3294de1
commit
cfe087a211
@ -2544,7 +2544,7 @@ typedef unsigned long long virDomainBlockJobCursor;
|
||||
|
||||
typedef struct _virDomainBlockJobInfo virDomainBlockJobInfo;
|
||||
struct _virDomainBlockJobInfo {
|
||||
virDomainBlockJobType type;
|
||||
int type; /* virDomainBlockJobType */
|
||||
unsigned long bandwidth;
|
||||
/*
|
||||
* The following fields provide an indication of block job progress. @cur
|
||||
|
Loading…
Reference in New Issue
Block a user