On 9/9/20 7:56 PM, Philippe Mathieu-Daudé wrote: > Hi Yoshinori, > > On 9/7/20 3:13 PM, Peter Maydell wrote: >> On Mon, 22 Jun 2020 at 20:20, Philippe Mathieu-Daudé <f4...@amsat.org> wrote: >>> >>> From: Yoshinori Sato <ys...@users.sourceforge.jp> >>> >>> Add the RX machine internally simulated in GDB. >> >> Hi; Coverity points out a memory leak (CID 1432307) in this function: >> >>> +static void rx_gdbsim_init(MachineState *machine) >>> +{ >> >>> + if (dtb_filename) { >>> + ram_addr_t dtb_offset; >>> + int dtb_size; >>> + void *dtb; >>> + >>> + dtb = load_device_tree(dtb_filename, &dtb_size); >> >> This allocates memory... >> >>> + if (dtb == NULL) { >>> + error_report("Couldn't open dtb file %s", dtb_filename); >>> + exit(1); >>> + } >>> + if (machine->kernel_cmdline && >>> + qemu_fdt_setprop_string(dtb, "/chosen", "bootargs", >>> + machine->kernel_cmdline) < 0) { >>> + error_report("Couldn't set /chosen/bootargs"); >>> + exit(1); >>> + } >>> + /* DTB is located at the end of SDRAM space. */ >>> + dtb_offset = machine->ram_size - dtb_size; >>> + rom_add_blob_fixed("dtb", dtb, dtb_size, >>> + SDRAM_BASE + dtb_offset); >> >> ...and rom_add_blob_fixed() copies that memory, it doesn't take >> ownership of it, so after we've called it we need to >> g_free(fdt); > > Can you send a patch to fix this please?
ping? > >> >>> + /* Set dtb address to R1 */ >>> + RXCPU(first_cpu)->env.regs[1] = SDRAM_BASE + dtb_offset; >>> + } >>> + } >> >> thanks >> -- PMM >> >