linux-stable/tools
Kees Cook e89bb266b7 libsubcmd: Fix use-after-free for realloc(..., 0)
commit 52a9dab6d8 upstream.

GCC 12 correctly reports a potential use-after-free condition in the
xrealloc helper. Fix the warning by avoiding an implicit "free(ptr)"
when size == 0:

In file included from help.c:12:
In function 'xrealloc',
    inlined from 'add_cmdname' at help.c:24:2: subcmd-util.h:56:23: error: pointer may be used after 'realloc' [-Werror=use-after-free]
   56 |                 ret = realloc(ptr, size);
      |                       ^~~~~~~~~~~~~~~~~~
subcmd-util.h:52:21: note: call to 'realloc' here
   52 |         void *ret = realloc(ptr, size);
      |                     ^~~~~~~~~~~~~~~~~~
subcmd-util.h:58:31: error: pointer may be used after 'realloc' [-Werror=use-after-free]
   58 |                         ret = realloc(ptr, 1);
      |                               ^~~~~~~~~~~~~~~
subcmd-util.h:52:21: note: call to 'realloc' here
   52 |         void *ret = realloc(ptr, size);
      |                     ^~~~~~~~~~~~~~~~~~

Fixes: 2f4ce5ec1d ("perf tools: Finalize subcmd independence")
Reported-by: Valdis Klētnieks <valdis.kletnieks@vt.edu>
Signed-off-by: Kees Kook <keescook@chromium.org>
Tested-by: Valdis Klētnieks <valdis.kletnieks@vt.edu>
Tested-by: Justin M. Forbes <jforbes@fedoraproject.org>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: linux-hardening@vger.kernel.org
Cc: Valdis Klētnieks <valdis.kletnieks@vt.edu>
Link: http://lore.kernel.org/lkml/20220213182443.4037039-1-keescook@chromium.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-02-23 11:57:34 +01:00
..
accounting tools/accounting/getdelays.c: fix netlink attribute length 2020-04-13 10:34:33 +02:00
arch ia64: tools: remove duplicate definition of ia64_mf() on ia64 2021-04-28 12:08:43 +02:00
build tools build feature: Check if pthread_barrier_t is available 2021-03-24 11:05:00 +01:00
cgroup tools: fix cross-compile var clobbering 2019-01-13 10:01:02 +01:00
firewire
gpio tools: gpio-hammer: Avoid potential overflow in main 2020-10-01 13:12:39 +02:00
hv Tools: hv: kvp: eliminate 'may be used uninitialized' warning 2019-09-10 10:32:17 +01:00
iio iio: iio-utils: Fix possible incorrect mask calculation 2019-07-31 07:28:53 +02:00
include perf tools: Correct SNOOPX field offset 2020-09-09 19:03:09 +02:00
kvm/kvm_stat tweewide: Fix most Shebang lines 2021-06-03 08:36:11 +02:00
laptop tools: fix cross-compile var clobbering 2019-01-13 10:01:02 +01:00
leds tools: fix cross-compile var clobbering 2019-01-13 10:01:02 +01:00
lib libsubcmd: Fix use-after-free for realloc(..., 0) 2022-02-23 11:57:34 +01:00
net bpf: fix uninitialized variable in bpf tools 2018-06-21 04:02:49 +09:00
nfsd
objtool objtool: Support Clang non-section symbols in ORC generation 2021-02-10 09:12:08 +01:00
pci tools: PCI: Fix broken pcitest compilation 2019-11-24 08:23:34 +01:00
pcmcia
perf perf hist: Fix memory leak of a perf_hpp_fmt 2021-12-08 08:46:54 +01:00
power tweewide: Fix most Shebang lines 2021-06-03 08:36:11 +02:00
scripts tools: Let O= makes handle a relative path with -C option 2020-04-02 16:34:30 +02:00
spi tools: fix cross-compile var clobbering 2019-01-13 10:01:02 +01:00
testing selftests/zram: Adapt the situation that /dev/zram0 is being used 2022-02-23 11:57:33 +01:00
thermal/tmon tools/thermal: tmon: fix for segfault 2018-05-30 07:52:28 +02:00
time
usb usb: testusb: Fix for showing the connection speed 2021-10-09 14:09:46 +02:00
virtio virtio: fix test build after uio.h change 2019-01-13 10:01:01 +01:00
vm tools/vm: fix cross-compile build 2020-05-02 17:24:22 +02:00
Makefile