On 5/6/21 10:41 AM, Greg Kurz wrote: > On Wed, 5 May 2021 19:00:55 +0200 > Philippe Mathieu-Daudé <philmd@xxxxxxxxxx> wrote: > >> The ALLOCA(3) man-page mentions its "use is discouraged". >> >> Replace it by a g_malloc() call. >> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@xxxxxxxxxx> >> --- >> target/ppc/kvm.c | 10 +++++----- >> 1 file changed, 5 insertions(+), 5 deletions(-) >> >> diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c >> index 104a308abb5..ae62daddf7d 100644 >> --- a/target/ppc/kvm.c >> +++ b/target/ppc/kvm.c >> @@ -2698,11 +2698,11 @@ int kvmppc_save_htab(QEMUFile *f, int fd, size_t bufsize, int64_t max_ns) >> int kvmppc_load_htab_chunk(QEMUFile *f, int fd, uint32_t index, >> uint16_t n_valid, uint16_t n_invalid, Error **errp) >> { >> - struct kvm_get_htab_header *buf; >> - size_t chunksize = sizeof(*buf) + n_valid * HASH_PTE_SIZE_64; >> + size_t chunksize = sizeof(struct kvm_get_htab_header) > > It is a bit unfortunate to introduce a new dependency on the struct type. > > What about the following ? > > - struct kvm_get_htab_header *buf; > + g_autofree struct kvm_get_htab_header *buf = NULL; > size_t chunksize = sizeof(*buf) + n_valid * HASH_PTE_SIZE_64; > ssize_t rc; > > - buf = alloca(chunksize); > + buf = g_malloc(chunksize); OK.