On 2 November 2018 at 11:14, Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> wrote: > On 01/11/2018 16:17, Peter Maydell wrote: > >> In ppc_core99_init(), we allocate an openpic_irqs array, which >> we then use to collect up the various qemu_irqs which we're >> going to connect to the interrupt controller. Once we've >> called sysbus_connect_irq() to connect them all up, the >> array is no longer required, but we forgot to free it. >> >> Since board init is only run once at startup, the memory >> leak is not a significant one. >> >> Spotted by Coverity: CID 1192916. >> >> Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> >> --- >> hw/ppc/mac_newworld.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c >> index a630cb81cd8..14273a123e5 100644 >> --- a/hw/ppc/mac_newworld.c >> +++ b/hw/ppc/mac_newworld.c >> @@ -303,6 +303,7 @@ static void ppc_core99_init(MachineState *machine) >> sysbus_connect_irq(s, k++, openpic_irqs[i][j]); >> } >> } >> + g_free(openpic_irqs); >> >> if (PPC_INPUT(env) == PPC_FLAGS_INPUT_970) { >> /* 970 gets a U3 bus */ >> > > Reviewed-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> > > I did notice the generation of this 2D array for the OpenPIC controller whilst > converting the Mac machines over to qdev, but wasn't exactly sure what to do > here so > I left it.
In some sense the array isn't really necessary at all -- instead of "fill in array with things; create PIC; sysbus_connect_irq from array" you could just do "create PIC; sysbus_connect_irq to things". But for this patch I opted to just free the memory rather than attempt more complicated refactoring. thanks -- PMM