mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu_monitor: s/size_t/ULL/ in qemuMonitorSave{Virtual,Physical}Memory
As it turns out, on my 32bit ARM machine size_t is not the same size as ULL. However, @length argument for both functions is type of size_t but it's treated as ULL - for instance when passed to qemuMonitorJSONMakeCommand(). The problem is that because of "U:size" the virJSONValueObjectAddVArgs() expects an ULL argument but on the stack there are size_t and char * arguments (which coincidentally add up to size of ULL). So the created command has only two arguments "val" and incorrect "size" and no "path" which is required. I've tried to find other occurrences of this pattern but at the rest of places where size_t is used it tracks size of an array so that's safe. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> ACKed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
04af89b819
commit
9a293d3315
@ -2348,10 +2348,10 @@ qemuMonitorChangeMedia(qemuMonitorPtr mon,
|
||||
int
|
||||
qemuMonitorSaveVirtualMemory(qemuMonitorPtr mon,
|
||||
unsigned long long offset,
|
||||
size_t length,
|
||||
unsigned long long length,
|
||||
const char *path)
|
||||
{
|
||||
VIR_DEBUG("offset=%llu length=%zu path=%s", offset, length, path);
|
||||
VIR_DEBUG("offset=%llu length=%llu path=%s", offset, length, path);
|
||||
|
||||
QEMU_CHECK_MONITOR(mon);
|
||||
|
||||
@ -2362,10 +2362,10 @@ qemuMonitorSaveVirtualMemory(qemuMonitorPtr mon,
|
||||
int
|
||||
qemuMonitorSavePhysicalMemory(qemuMonitorPtr mon,
|
||||
unsigned long long offset,
|
||||
size_t length,
|
||||
unsigned long long length,
|
||||
const char *path)
|
||||
{
|
||||
VIR_DEBUG("offset=%llu length=%zu path=%s", offset, length, path);
|
||||
VIR_DEBUG("offset=%llu length=%llu path=%s", offset, length, path);
|
||||
|
||||
QEMU_CHECK_MONITOR(mon);
|
||||
|
||||
|
@ -726,11 +726,11 @@ int qemuMonitorChangeMedia(qemuMonitorPtr mon,
|
||||
|
||||
int qemuMonitorSaveVirtualMemory(qemuMonitorPtr mon,
|
||||
unsigned long long offset,
|
||||
size_t length,
|
||||
unsigned long long length,
|
||||
const char *path);
|
||||
int qemuMonitorSavePhysicalMemory(qemuMonitorPtr mon,
|
||||
unsigned long long offset,
|
||||
size_t length,
|
||||
unsigned long long length,
|
||||
const char *path);
|
||||
|
||||
int qemuMonitorSetMigrationSpeed(qemuMonitorPtr mon,
|
||||
|
@ -3100,7 +3100,7 @@ int qemuMonitorJSONChangeMedia(qemuMonitorPtr mon,
|
||||
static int qemuMonitorJSONSaveMemory(qemuMonitorPtr mon,
|
||||
const char *cmdtype,
|
||||
unsigned long long offset,
|
||||
size_t length,
|
||||
unsigned long long length,
|
||||
const char *path)
|
||||
{
|
||||
int ret = -1;
|
||||
@ -3129,7 +3129,7 @@ static int qemuMonitorJSONSaveMemory(qemuMonitorPtr mon,
|
||||
|
||||
int qemuMonitorJSONSaveVirtualMemory(qemuMonitorPtr mon,
|
||||
unsigned long long offset,
|
||||
size_t length,
|
||||
unsigned long long length,
|
||||
const char *path)
|
||||
{
|
||||
return qemuMonitorJSONSaveMemory(mon, "memsave", offset, length, path);
|
||||
@ -3137,7 +3137,7 @@ int qemuMonitorJSONSaveVirtualMemory(qemuMonitorPtr mon,
|
||||
|
||||
int qemuMonitorJSONSavePhysicalMemory(qemuMonitorPtr mon,
|
||||
unsigned long long offset,
|
||||
size_t length,
|
||||
unsigned long long length,
|
||||
const char *path)
|
||||
{
|
||||
return qemuMonitorJSONSaveMemory(mon, "pmemsave", offset, length, path);
|
||||
|
@ -118,11 +118,11 @@ int qemuMonitorJSONChangeMedia(qemuMonitorPtr mon,
|
||||
|
||||
int qemuMonitorJSONSaveVirtualMemory(qemuMonitorPtr mon,
|
||||
unsigned long long offset,
|
||||
size_t length,
|
||||
unsigned long long length,
|
||||
const char *path);
|
||||
int qemuMonitorJSONSavePhysicalMemory(qemuMonitorPtr mon,
|
||||
unsigned long long offset,
|
||||
size_t length,
|
||||
unsigned long long length,
|
||||
const char *path);
|
||||
|
||||
int qemuMonitorJSONSetMigrationSpeed(qemuMonitorPtr mon,
|
||||
|
Loading…
x
Reference in New Issue
Block a user