qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 00/37] Various memory leak fixes
@ 2016-07-28 14:37 marcandre.lureau
  2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 01/37] build-sys: use an override for CFLAGS filter marcandre.lureau
                   ` (37 more replies)
  0 siblings, 38 replies; 56+ messages in thread
From: marcandre.lureau @ 2016-07-28 14:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: eblake, Marc-André Lureau

From: Marc-André Lureau <marcandre.lureau@redhat.com>

Hi,

Thanks to AddressSanitizer (ASAN), I found a number of direct leaks
worth fixing. Note that there are probably many indirect leaks left (I
am adding some here), I haven't investigated much yet.

There are still a number of direct leaks remaining, in particular in
the tests, but my libc doesn't give me good backtraces.

In order to easily switch to asan-enabled build, I make use of make
CFLAGS argument, which is why the first patch is also there.

The series is also available for convenience in
https://github.com/elmarco/qemu leak branch.

v1->v2:
- split "pci-bus: do not allocate and leak bsel" as a seperate patch,
  since the direct leak looks like a bug
- hook virtio_input_finalize to the abstract base class
- use mkdtemp in test-io-channel-command
- fix pc-cpu-test commit message
- move the sglist destruction inside of ncq_err, call dma_buf_commit
  in ide_dma_cb, as suggested by John Snow
- fix build with glib 2.22
- add the given reviewed-by tags (22/37, 15 left)

Marc-André Lureau (37):
  build-sys: use an override for CFLAGS filter
  tests: fix test-qga leaks
  qga: free the whole blacklist
  qga: free remaining leaking state
  tests: fix test-cutils leaks
  tests: fix test-vmstate leaks
  tests: fix test-iov leaks
  qdist: fix entries memory leak
  tests: fix check-qom-interface leaks
  tests: fix check-qom-proplist leaks
  tests: fix small leak in test-io-channel-command
  tests: fix leak in test-string-input-visitor
  portio: keep references on portio
  numa: do not leak NumaOptions
  pc: simplify passing qemu_irq
  pc: don't leak a20_line
  machine: use class base init generated name
  acpi-build: fix array leak
  char: disconnect peer when qemu_chr_free()
  char: free MuxDriver when closing
  tests: fix qom-test leaks
  pc: free i8259
  pc: keep gsi reference
  ahci: free irqs array
  sd: free timer
  qjson: free str
  virtio-input: free config list
  ipmi: free extern timer
  usb: free USBDevice.strings
  tests: free a bunch of qmp responses
  usb: free leaking path
  bus: simplify name handling
  tests: add qtest_add_data_func_full
  tests: pc-cpu-test leaks fixes
  tests: fix rsp leak in postcopy-test
  ahci: fix sglist leak on retry
  tests: fix postcopy-test leaks

 hw/audio/gus.c                    |  9 ++++++---
 hw/audio/sb16.c                   |  4 +++-
 hw/block/fdc.c                    |  4 +++-
 hw/char/parallel.c                |  3 ++-
 hw/core/bus.c                     | 21 ++++++---------------
 hw/core/machine.c                 |  1 +
 hw/display/vga-isa.c              |  8 ++++++--
 hw/dma/i8257.c                    |  6 ++++--
 hw/i386/acpi-build.c              |  4 ++--
 hw/i386/pc.c                      |  9 +++++----
 hw/i386/pc_piix.c                 | 17 ++++++++---------
 hw/i386/pc_q35.c                  | 15 ++++++++-------
 hw/ide/ahci.c                     |  4 ++--
 hw/ide/core.c                     |  7 +++++--
 hw/input/pckbd.c                  |  4 ++--
 hw/input/virtio-input.c           | 11 +++++++++++
 hw/ipmi/ipmi_bmc_extern.c         |  9 +++++++++
 hw/isa/isa-bus.c                  | 14 +++++---------
 hw/sd/sd.c                        |  9 +++++++++
 hw/usb/bus.c                      |  7 +++++++
 hw/usb/desc.c                     |  1 +
 include/hw/boards.h               |  2 +-
 include/hw/i386/pc.h              |  4 ++--
 include/hw/ide/internal.h         |  2 ++
 include/hw/isa/i8257.h            |  2 ++
 include/hw/isa/isa.h              |  5 ++++-
 include/hw/qdev-core.h            |  2 +-
 migration/qjson.c                 |  1 +
 numa.c                            | 15 ++++++++-------
 pc-bios/optionrom/Makefile        |  4 ++--
 qemu-char.c                       | 10 ++++++++++
 qga/guest-agent-command-state.c   |  7 +++++++
 qga/guest-agent-core.h            |  1 +
 qga/main.c                        | 14 ++++++++------
 tests/check-qom-interface.c       |  1 +
 tests/check-qom-proplist.c        | 16 ++++++++++++++++
 tests/libqos/usb.c                |  1 +
 tests/libqtest.c                  | 15 ++++++++++++++-
 tests/libqtest.h                  |  7 ++++++-
 tests/pc-cpu-test.c               | 24 +++++++++++++++++++-----
 tests/postcopy-test.c             |  9 ++++++---
 tests/pvpanic-test.c              |  1 +
 tests/qom-test.c                  |  5 +++--
 tests/test-cutils.c               | 24 ++++++++++++++++--------
 tests/test-filter-mirror.c        |  4 +++-
 tests/test-filter-redirector.c    |  8 ++++++--
 tests/test-io-channel-command.c   | 20 +++++++++++++-------
 tests/test-iov.c                  |  7 +++++++
 tests/test-qga.c                  |  5 +++++
 tests/test-string-input-visitor.c |  1 +
 tests/test-vmstate.c              |  8 ++++++--
 tests/virtio-blk-test.c           | 19 +++++++++++++------
 tests/virtio-net-test.c           | 10 +++++++---
 util/qdist.c                      |  3 ++-
 54 files changed, 300 insertions(+), 124 deletions(-)

-- 
2.9.0

^ permalink raw reply	[flat|nested] 56+ messages in thread

end of thread, other threads:[~2016-08-01 12:53 UTC | newest]

Thread overview: 56+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-28 14:37 [Qemu-devel] [PATCH v2 00/37] Various memory leak fixes marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 01/37] build-sys: use an override for CFLAGS filter marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 02/37] tests: fix test-qga leaks marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 03/37] qga: free the whole blacklist marcandre.lureau
2016-07-28 21:18   ` Eric Blake
2016-07-28 21:36     ` Marc-André Lureau
2016-07-28 21:39       ` Eric Blake
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 04/37] qga: free remaining leaking state marcandre.lureau
2016-07-28 21:22   ` Eric Blake
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 05/37] tests: fix test-cutils leaks marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 06/37] tests: fix test-vmstate leaks marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 07/37] tests: fix test-iov leaks marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 08/37] qdist: fix entries memory leak marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 09/37] tests: fix check-qom-interface leaks marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 10/37] tests: fix check-qom-proplist leaks marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 11/37] tests: fix small leak in test-io-channel-command marcandre.lureau
2016-07-28 21:44   ` Eric Blake
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 12/37] tests: fix leak in test-string-input-visitor marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 13/37] portio: keep references on portio marcandre.lureau
2016-08-01 12:42   ` Paolo Bonzini
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 14/37] numa: do not leak NumaOptions marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 15/37] pc: simplify passing qemu_irq marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 16/37] pc: don't leak a20_line marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 17/37] machine: use class base init generated name marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 18/37] acpi-build: fix array leak marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 19/37] char: disconnect peer when qemu_chr_free() marcandre.lureau
2016-07-28 21:49   ` Eric Blake
2016-08-01 12:48   ` Paolo Bonzini
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 20/37] char: free MuxDriver when closing marcandre.lureau
2016-07-28 22:02   ` Eric Blake
2016-08-01 12:50   ` Paolo Bonzini
2016-08-01 12:52     ` Paolo Bonzini
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 21/37] tests: fix qom-test leaks marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 22/37] pc: free i8259 marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 23/37] pc: keep gsi reference marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 24/37] ahci: free irqs array marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 25/37] sd: free timer marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 26/37] qjson: free str marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 27/37] virtio-input: free config list marcandre.lureau
2016-07-28 14:37 ` [Qemu-devel] [PATCH v2 28/37] ipmi: free extern timer marcandre.lureau
2016-07-28 14:38 ` [Qemu-devel] [PATCH v2 29/37] usb: free USBDevice.strings marcandre.lureau
2016-07-28 14:38 ` [Qemu-devel] [PATCH v2 30/37] tests: free a bunch of qmp responses marcandre.lureau
2016-07-28 14:38 ` [Qemu-devel] [PATCH v2 31/37] usb: free leaking path marcandre.lureau
2016-07-28 14:38 ` [Qemu-devel] [PATCH v2 32/37] bus: simplify name handling marcandre.lureau
2016-07-28 22:05   ` Eric Blake
2016-07-28 14:38 ` [Qemu-devel] [PATCH v2 33/37] tests: add qtest_add_data_func_full marcandre.lureau
2016-07-28 22:16   ` Eric Blake
2016-07-29  8:48     ` Marc-André Lureau
2016-08-01 12:53       ` Eric Blake
2016-07-28 14:38 ` [Qemu-devel] [PATCH v2 34/37] tests: pc-cpu-test leaks fixes marcandre.lureau
2016-07-28 22:17   ` Eric Blake
2016-07-28 14:38 ` [Qemu-devel] [PATCH v2 35/37] tests: fix rsp leak in postcopy-test marcandre.lureau
2016-07-28 14:38 ` [Qemu-devel] [PATCH v2 36/37] ahci: fix sglist leak on retry marcandre.lureau
2016-07-28 14:38 ` [Qemu-devel] [PATCH v2 37/37] tests: fix postcopy-test leaks marcandre.lureau
2016-07-28 22:18   ` Eric Blake
2016-07-28 21:49 ` [Qemu-devel] [PATCH v2 00/37] Various memory leak fixes Eric Blake

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).