All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.