On 02.04.2021 17:21, Julien Grall wrote: > From: Julien Grall <jgr...@amazon.com> > > Currently perform_gunzip() can only be called once because the > the internal state (e.g allocate) is not fully re-initialized. > > This works fine if you are only booting dom0. But this will break when > booting multiple using the dom0less that uses compressed kernel images. > > This can be resolved by re-initializing bytes_out, malloc_ptr, > malloc_count every time perform_gunzip() is called. > > Note the latter is only re-initialized for hardening purpose as there is > no guarantee that every malloc() are followed by free() (It should in > theory!). > > Take the opportunity to check the return of alloc_heap_pages() to return > an error rather than dereferencing a NULL pointer later on failure. > > Reported-by: Charles Chiou <cch...@ambarella.com> > Signed-off-by: Julien Grall <jgr...@amazon.com>
Reviewed-by: Jan Beulich <jbeul...@suse.com>