[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 36/37] ahci: fix sglist leak on retry
From: |
marcandre . lureau |
Subject: |
[Qemu-devel] [PATCH 36/37] ahci: fix sglist leak on retry |
Date: |
Tue, 19 Jul 2016 12:54:31 +0400 |
From: Marc-André Lureau <address@hidden>
ahci-test /x86_64/ahci/io/dma/lba28/retry triggers the following leak:
Direct leak of 16 byte(s) in 1 object(s) allocated from:
#0 0x7fc4b2a25e20 in malloc (/lib64/libasan.so.3+0xc6e20)
#1 0x7fc4993bce58 in g_malloc (/lib64/libglib-2.0.so.0+0x4ee58)
#2 0x556a187d4b34 in ahci_populate_sglist hw/ide/ahci.c:896
#3 0x556a187d8237 in ahci_dma_prepare_buf hw/ide/ahci.c:1367
#4 0x556a187b5a1a in ide_dma_cb hw/ide/core.c:844
#5 0x556a187d7eec in ahci_start_dma hw/ide/ahci.c:1333
#6 0x556a187b650b in ide_start_dma hw/ide/core.c:921
#7 0x556a187b61e6 in ide_sector_start_dma hw/ide/core.c:911
#8 0x556a187b9e26 in cmd_write_dma hw/ide/core.c:1486
#9 0x556a187bd519 in ide_exec_cmd hw/ide/core.c:2027
#10 0x556a187d71c5 in handle_reg_h2d_fis hw/ide/ahci.c:1204
#11 0x556a187d7681 in handle_cmd hw/ide/ahci.c:1254
#12 0x556a187d168a in check_cmd hw/ide/ahci.c:510
#13 0x556a187d0afc in ahci_port_write hw/ide/ahci.c:314
#14 0x556a187d105d in ahci_mem_write hw/ide/ahci.c:435
#15 0x556a1831d959 in memory_region_write_accessor
/home/elmarco/src/qemu/memory.c:525
#16 0x556a1831dc35 in access_with_adjusted_size
/home/elmarco/src/qemu/memory.c:591
#17 0x556a18323ce3 in memory_region_dispatch_write
/home/elmarco/src/qemu/memory.c:1262
#18 0x556a1828cf67 in address_space_write_continue
/home/elmarco/src/qemu/exec.c:2578
#19 0x556a1828d20b in address_space_write /home/elmarco/src/qemu/exec.c:2635
#20 0x556a1828d92b in address_space_rw /home/elmarco/src/qemu/exec.c:2737
#21 0x556a1828daf7 in cpu_physical_memory_rw
/home/elmarco/src/qemu/exec.c:2746
#22 0x556a183068d3 in cpu_physical_memory_write
/home/elmarco/src/qemu/include/exec/cpu-common.h:72
#23 0x556a18308194 in qtest_process_command
/home/elmarco/src/qemu/qtest.c:382
#24 0x556a18309999 in qtest_process_inbuf /home/elmarco/src/qemu/qtest.c:573
#25 0x556a18309a4a in qtest_read /home/elmarco/src/qemu/qtest.c:585
#26 0x556a18598b85 in qemu_chr_be_write_impl
/home/elmarco/src/qemu/qemu-char.c:387
#27 0x556a18598c52 in qemu_chr_be_write
/home/elmarco/src/qemu/qemu-char.c:399
#28 0x556a185a2afa in tcp_chr_read /home/elmarco/src/qemu/qemu-char.c:2902
#29 0x556a18cbaf52 in qio_channel_fd_source_dispatch io/channel-watch.c:84
Signed-off-by: Marc-André Lureau <address@hidden>
---
hw/ide/ahci.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index 6defeed..0ea5805 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -919,6 +919,7 @@ static void ncq_err(NCQTransferState *ncq_tfs)
ide_state->error = ABRT_ERR;
ide_state->status = READY_STAT | ERR_STAT;
ncq_tfs->drive->port_regs.scr_err |= (1 << ncq_tfs->tag);
+ qemu_sglist_destroy(&ncq_tfs->sglist);
ncq_tfs->used = 0;
}
@@ -1330,6 +1331,7 @@ static void ahci_start_dma(IDEDMA *dma, IDEState *s,
AHCIDevice *ad = DO_UPCAST(AHCIDevice, dma, dma);
DPRINTF(ad->port_no, "\n");
s->io_buffer_offset = 0;
+ qemu_sglist_destroy(&s->sg);
dma_cb(s, 0);
}
--
2.9.0
- Re: [Qemu-devel] [PATCH 27/37] qjson: free str, (continued)
- [Qemu-devel] [PATCH 28/37] virtio-input: free config list, marcandre . lureau, 2016/07/19
- [Qemu-devel] [PATCH 29/37] ipmi: free extern timer, marcandre . lureau, 2016/07/19
- [Qemu-devel] [PATCH 30/37] usb: free USBDevice.strings, marcandre . lureau, 2016/07/19
- [Qemu-devel] [PATCH 31/37] tests: free a bunch of qmp responses, marcandre . lureau, 2016/07/19
- [Qemu-devel] [PATCH 32/37] usb: free leaking path, marcandre . lureau, 2016/07/19
- [Qemu-devel] [PATCH 33/37] bus: simplify name handling, marcandre . lureau, 2016/07/19
- [Qemu-devel] [PATCH 34/37] tests: pc-cpu-test, marcandre . lureau, 2016/07/19
- [Qemu-devel] [PATCH 36/37] ahci: fix sglist leak on retry,
marcandre . lureau <=
- [Qemu-devel] [PATCH 35/37] tests: fix rsp leak in postcopy-test, marcandre . lureau, 2016/07/19
- [Qemu-devel] [PATCH 37/37] tests: fix postcopy-test leaks, marcandre . lureau, 2016/07/19