mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 19:45:21 +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;
|
typedef struct _virDomainBlockJobInfo virDomainBlockJobInfo;
|
||||||
struct _virDomainBlockJobInfo {
|
struct _virDomainBlockJobInfo {
|
||||||
virDomainBlockJobType type;
|
int type; /* virDomainBlockJobType */
|
||||||
unsigned long bandwidth;
|
unsigned long bandwidth;
|
||||||
/*
|
/*
|
||||||
* The following fields provide an indication of block job progress. @cur
|
* The following fields provide an indication of block job progress. @cur
|
||||||
|
Loading…
Reference in New Issue
Block a user