mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00
Add qemu_get_counted_string to read a string prefixed by a count byte
and use it in loadvm_state and ram_load. Where ever it's used, check the return and error if it failed. Minor: ram_load was using a 257 byte array for its string, the maximum length is 255 bytes + 0 terminator, so fix to 256 Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Amit Shah <amit.shah@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
parent
5cd8cadae8
commit
b3af1bc9d2
3 changed files with 26 additions and 5 deletions
|
@ -585,3 +585,20 @@ int qemu_put_qemu_file(QEMUFile *f_des, QEMUFile *f_src)
|
|||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get a string whose length is determined by a single preceding byte
|
||||
* A preallocated 256 byte buffer must be passed in.
|
||||
* Returns: len on success and a 0 terminated string in the buffer
|
||||
* else 0
|
||||
* (Note a 0 length string will return 0 either way)
|
||||
*/
|
||||
size_t qemu_get_counted_string(QEMUFile *f, char buf[256])
|
||||
{
|
||||
size_t len = qemu_get_byte(f);
|
||||
size_t res = qemu_get_buffer(f, (uint8_t *)buf, len);
|
||||
|
||||
buf[res] = 0;
|
||||
|
||||
return res == len ? res : 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue