mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
fw_cfg: Splash image loader can overrun a stack variable, fix
read_splashfile() passes the address of an int variable as size_t * parameter to g_file_get_contents(), with a cast to gag the compiler. No problem on machines where sizeof(size_t) == sizeof(int). Happens to work on my x86_64 box (64 bit little endian): the least significant 32 bits of the file size end up in the right place (caller's variable file_size), and the most significant 32 bits clobber a place that gets assigned to before its next use (caller's variable file_type). I'd expect it to break on a 64 bit big-endian box. Fix up the variable types and drop the problematic cast. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
a6e7c18476
commit
d09acb9b5e
3 changed files with 6 additions and 5 deletions
|
@ -122,7 +122,7 @@ extern int semihosting_enabled;
|
|||
extern int old_param;
|
||||
extern int boot_menu;
|
||||
extern uint8_t *boot_splash_filedata;
|
||||
extern int boot_splash_filedata_size;
|
||||
extern size_t boot_splash_filedata_size;
|
||||
extern uint8_t qemu_extra_params_fw[2];
|
||||
extern QEMUClock *rtc_clock;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue