qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH for 2.10 00/35] fix bugs reported by Clang Static Analyzer
@ 2017-07-24 18:27 Philippe Mathieu-Daudé
  2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 01/35] tests: add missing dependency to build QTEST_QEMU_BINARY Philippe Mathieu-Daudé
                   ` (35 more replies)
  0 siblings, 36 replies; 111+ messages in thread
From: Philippe Mathieu-Daudé @ 2017-07-24 18:27 UTC (permalink / raw)
  To: Eric Blake, Marc-André Lureau, Alex Bennée, Fam Zheng,
	Peter Maydell, Paolo Bonzini
  Cc: Philippe Mathieu-Daudé, qemu-devel, qemu-trivial

Hi,

This series is the result of having fun with Clang's Static Analyzer during
the week-end (see https://clang-analyzer.llvm.org/).

No need to delay the first batch for -rc0.

Patch 1 was in another series (delayed for 2.11), it would be nice to have it
in 2.10.

I built a docker image based on debian/unstable to use bleeding code, the
Dockerfile is provided at the end of this series as RFC for people wanted
to give a try (also include 'dockershell' script and a fix in ./configure).
These RFC patches (33-35) are not expected to enter 2.10.

I used the following commands:

$ make docker-image-debian-bleeding-dev
$ ./scripts/dockershell debian-bleeding-dev
$ mkdir -p build
$ cd build
$ ../configure --host-cc=clang-5.0 --cc=clang-5.0 --cxx=clang++-5.0 \
  --disable-docs --enable-debug
$ scan-build-5.0 -o testresults --keep-going -maxloop 2 -no-failure-reports \
  -analyzer-config stable-report-filename=true \
  -disable-checker alpha.clone.CloneChecker \
  -enable-checker alpha.core.CastSize \
  -enable-checker alpha.core.Conversion \
  -enable-checker alpha.core.IdenticalExpr \
  -enable-checker alpha.core.SizeofPtr \
  -disable-checker alpha.deadcode.UnreachableCode \
  -enable-checker alpha.security.ArrayBoundV2 \
  -enable-checker alpha.security.MallocOverflow \
  -enable-checker alpha.unix.cstring.BufferOverlap \
  -enable-checker alpha.unix.cstring.OutOfBounds \
  -disable-checker deadcode.DeadStores \
  -disable-checker optin.performance.Padding \
  -enable-checker optin.portability.UnixAPI \
  -disable-checker security.insecureAPI.getpw \
  -disable-checker security.insecureAPI.gets \
  -enable-checker security.insecureAPI.strcpy \
  -disable-checker unix.Vfork \
    make -k -j4

Regards,

Phil.

Philippe Mathieu-Daudé (35):
  tests: add missing dependency to build QTEST_QEMU_BINARY
  loader: check get_image_size() return value
  thunk: check nb_fields is valid before continuing
  ivshmem: fix incorrect error handling in ivshmem_recv_msg()
  nbd: fix memory leak in nbd_opt_go()
  qcow2: remove inconsistent check
  qcow2: fix null pointer dereference
  qcow2: fix null pointer dereference
  ui/vnc: fix leak of SocketAddress **
  net/eth: fix incorrect check of iov_to_buf() return value
  i2c/exynos4210: correctly check i2c_recv() return value
  vfio/platform: fix use of freed memory
  vfio/pci: fix use of freed memory
  vfio/ccw: fix incorrect malloc() size
  usb: correctly handle Zero Length Packets
  usb/dev-mtp: fix use of uninitialized values
  usb/dev-mtp: fix use of uninitialized values
  usb/dev-mtp: fix use of uninitialized values
  usb/dev-mtp: fix use of uninitialized variable
  arm/boot: fix undefined instruction on secondary smp cpu bootloader
  arm/sysbus-fdt: fix null pointer dereference
  arm/vexpress: fix potential memory leak
  m68k/translate: fix incorrect copy/paste
  linux-user/sh4: fix incorrect memory write
  linux-user: extract is_error() out of syscall.c
  linux-user: use is_error() to avoid warnings and make the code clearer
  syscall: fix dereference of undefined pointer
  syscall: check dup/dup2/dup3() errors, return EBADFD/EINVAL if
    required
  syscall: fix out-of-bound memory access
  syscall: fix use of uninitialized values
  syscall: replace strcpy() by g_strlcpy()
  timer/pxa2xx: silent warning about out-of-bound memory access
  configure: clang does not support -Wexpansion-to-defined
  docker: add debian 'bleeding' image with gcc7 and clang5
  script to run docker image

 block/qcow2-bitmap.c                               |  4 +-
 block/qcow2-refcount.c                             |  4 +-
 configure                                          |  6 +-
 hw/arm/boot.c                                      |  2 +-
 hw/arm/sysbus-fdt.c                                | 11 ++-
 hw/arm/vexpress.c                                  |  5 +-
 hw/core/loader.c                                   |  4 +-
 hw/i2c/exynos4210_i2c.c                            |  8 +-
 hw/misc/ivshmem.c                                  |  5 +-
 hw/timer/pxa2xx_timer.c                            |  2 +-
 hw/usb/dev-mtp.c                                   | 60 +++++++++-----
 hw/usb/redirect.c                                  |  2 +-
 hw/vfio/ccw.c                                      |  2 +-
 hw/vfio/pci.c                                      | 11 ++-
 hw/vfio/platform.c                                 |  2 +-
 linux-user/elfload.c                               |  2 +-
 linux-user/flatload.c                              | 15 ++--
 linux-user/qemu.h                                  |  5 ++
 linux-user/syscall.c                               | 45 +++++++----
 nbd/client.c                                       |  8 +-
 net/eth.c                                          |  4 +-
 scripts/dockershell                                | 30 +++++++
 target/m68k/translate.c                            |  3 +-
 tests/Makefile.include                             |  2 +-
 .../docker/dockerfiles/debian-bleeding-dev.docker  | 94 ++++++++++++++++++++++
 thunk.c                                            |  5 +-
 ui/vnc.c                                           | 36 ++++-----
 27 files changed, 279 insertions(+), 98 deletions(-)
 create mode 100755 scripts/dockershell
 create mode 100644 tests/docker/dockerfiles/debian-bleeding-dev.docker

-- 
2.13.3

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

end of thread, other threads:[~2018-06-04 15:16 UTC | newest]

Thread overview: 111+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-24 18:27 [Qemu-devel] [PATCH for 2.10 00/35] fix bugs reported by Clang Static Analyzer Philippe Mathieu-Daudé
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 01/35] tests: add missing dependency to build QTEST_QEMU_BINARY Philippe Mathieu-Daudé
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 02/35] loader: check get_image_size() return value Philippe Mathieu-Daudé
2017-07-24 18:38   ` Eric Blake
2017-07-24 20:59     ` Alistair Francis
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 03/35] thunk: check nb_fields is valid before continuing Philippe Mathieu-Daudé
2017-07-24 18:37   ` Eric Blake
2017-07-26 22:48     ` Philippe Mathieu-Daudé
2017-07-24 21:16   ` Peter Maydell
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 04/35] ivshmem: fix incorrect error handling in ivshmem_recv_msg() Philippe Mathieu-Daudé
2017-07-25  8:18   ` Markus Armbruster
2017-07-27 22:05     ` Paolo Bonzini
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 05/35] nbd: fix memory leak in nbd_opt_go() Philippe Mathieu-Daudé
2017-07-24 18:41   ` Eric Blake
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 06/35] qcow2: remove inconsistent check Philippe Mathieu-Daudé
2017-07-24 18:42   ` Eric Blake
2017-07-25 15:36     ` Paolo Bonzini
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 07/35] qcow2: fix null pointer dereference Philippe Mathieu-Daudé
2017-07-24 18:46   ` Eric Blake
2017-07-25  1:44     ` Philippe Mathieu-Daudé
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 08/35] " Philippe Mathieu-Daudé
2017-07-24 18:52   ` Eric Blake
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 09/35] ui/vnc: fix leak of SocketAddress ** Philippe Mathieu-Daudé
2017-07-25  8:37   ` Daniel P. Berrange
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 10/35] net/eth: fix incorrect check of iov_to_buf() return value Philippe Mathieu-Daudé
2017-07-26  9:51   ` Dmitry Fleytman
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 11/35] i2c/exynos4210: correctly check i2c_recv() " Philippe Mathieu-Daudé
2017-07-24 21:13   ` Peter Maydell
2017-07-25  5:23     ` Philippe Mathieu-Daudé
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 12/35] vfio/platform: fix use of freed memory Philippe Mathieu-Daudé
2017-07-25 15:37   ` Paolo Bonzini
2017-07-26 17:43   ` Alex Williamson
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 13/35] vfio/pci: " Philippe Mathieu-Daudé
2017-07-25 15:38   ` Paolo Bonzini
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 14/35] vfio/ccw: fix incorrect malloc() size Philippe Mathieu-Daudé
2017-07-25  7:20   ` Cornelia Huck
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 15/35] usb: correctly handle Zero Length Packets Philippe Mathieu-Daudé
2018-05-29 14:22   ` Philippe Mathieu-Daudé
2018-05-30  6:16     ` Gerd Hoffmann
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 16/35] usb/dev-mtp: fix use of uninitialized values Philippe Mathieu-Daudé
2017-07-25 12:34   ` Gerd Hoffmann
2017-07-26 23:23     ` Philippe Mathieu-Daudé
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 17/35] " Philippe Mathieu-Daudé
2017-07-26 23:26   ` Philippe Mathieu-Daudé
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 18/35] " Philippe Mathieu-Daudé
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 19/35] usb/dev-mtp: fix use of uninitialized variable Philippe Mathieu-Daudé
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 20/35] arm/boot: fix undefined instruction on secondary smp cpu bootloader Philippe Mathieu-Daudé
2017-07-24 21:06   ` Peter Maydell
2017-07-26 23:00     ` Philippe Mathieu-Daudé
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 21/35] arm/sysbus-fdt: fix null pointer dereference Philippe Mathieu-Daudé
2017-07-24 21:09   ` Peter Maydell
2017-07-24 21:20     ` Philippe Mathieu-Daudé
2017-07-24 21:24       ` Peter Maydell
2017-07-24 21:48     ` Philippe Mathieu-Daudé
2017-07-24 21:52       ` Eric Blake
2017-07-24 21:57         ` Eric Blake
2018-05-29 14:33           ` Philippe Mathieu-Daudé
2018-05-29 15:27             ` Eric Blake
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 22/35] arm/vexpress: fix potential memory leak Philippe Mathieu-Daudé
2017-07-24 21:11   ` Peter Maydell
2017-07-24 21:45     ` Philippe Mathieu-Daudé
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 23/35] m68k/translate: fix incorrect copy/paste Philippe Mathieu-Daudé
2017-07-24 18:54   ` Laurent Vivier
2017-07-24 19:01     ` Richard Henderson
2017-07-24 19:19       ` Philippe Mathieu-Daudé
2017-07-24 19:20         ` Laurent Vivier
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 24/35] linux-user/sh4: fix incorrect memory write Philippe Mathieu-Daudé
2017-07-24 18:59   ` Laurent Vivier
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 25/35] linux-user: extract is_error() out of syscall.c Philippe Mathieu-Daudé
2017-07-24 19:14   ` Laurent Vivier
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 26/35] linux-user: use is_error() to avoid warnings and make the code clearer Philippe Mathieu-Daudé
2017-07-24 19:16   ` Laurent Vivier
2018-05-29 14:25     ` Philippe Mathieu-Daudé
2018-05-29 15:19       ` Laurent Vivier
2018-06-03 23:33         ` Laurent Vivier
2018-06-04 14:20           ` Philippe Mathieu-Daudé
2018-06-04 15:16             ` Laurent Vivier
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 27/35] syscall: fix dereference of undefined pointer Philippe Mathieu-Daudé
2017-07-24 19:33   ` Laurent Vivier
2017-07-25  5:34     ` Philippe Mathieu-Daudé
2017-07-24 21:26   ` Peter Maydell
2017-07-25  7:25     ` Laurent Vivier
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 28/35] syscall: check dup/dup2/dup3() errors, return EBADFD/EINVAL if required Philippe Mathieu-Daudé
2017-07-24 19:56   ` Laurent Vivier
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 29/35] syscall: fix out-of-bound memory access Philippe Mathieu-Daudé
2017-07-24 19:41   ` Laurent Vivier
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 30/35] syscall: fix use of uninitialized values Philippe Mathieu-Daudé
2017-07-24 19:51   ` Laurent Vivier
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 31/35] syscall: replace strcpy() by g_strlcpy() Philippe Mathieu-Daudé
2017-07-24 19:28   ` Laurent Vivier
2018-05-29 14:19     ` Philippe Mathieu-Daudé
2018-05-29 15:22       ` Laurent Vivier
2017-07-24 18:27 ` [Qemu-devel] [PATCH for 2.10 32/35] timer/pxa2xx: silent warning about out-of-bound memory access Philippe Mathieu-Daudé
2017-07-24 21:01   ` Peter Maydell
2017-07-24 21:51     ` Philippe Mathieu-Daudé
2017-07-24 18:27 ` [Qemu-devel] [RFC PATCH for 2.10 33/35] configure: clang does not support -Wexpansion-to-defined Philippe Mathieu-Daudé
2017-07-24 20:08   ` Paolo Bonzini
2017-07-24 21:22   ` Peter Maydell
2017-07-24 21:55     ` Philippe Mathieu-Daudé
2017-07-24 18:27 ` [Qemu-devel] [RFC PATCH for 2.10 34/35] docker: add debian 'bleeding' image with gcc7 and clang5 Philippe Mathieu-Daudé
2017-07-25 14:15   ` Alex Bennée
2017-07-25 14:22     ` Daniel P. Berrange
2017-07-25 14:46       ` Alex Bennée
2017-07-25 14:51     ` Philippe Mathieu-Daudé
2017-07-25 15:05       ` Alex Bennée
2017-07-24 18:27 ` [Qemu-devel] [RFC PATCH for 2.10 35/35] script to run docker image Philippe Mathieu-Daudé
2017-07-25 14:12   ` Alex Bennée
2017-07-25 14:41     ` Philippe Mathieu-Daudé
2017-07-25 15:03       ` Alex Bennée
2017-07-25 15:17         ` Philippe Mathieu-Daudé
2017-07-24 21:27 ` [Qemu-devel] [PATCH for 2.10 00/35] fix bugs reported by Clang Static Analyzer Peter Maydell

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).