linux-stable/scripts/kconfig
Masahiro Yamada 94e5ed1620 kconfig: fix memory leak from range properties
[ Upstream commit ae1eff0349 ]

Currently, sym_validate_range() duplicates the range string using
xstrdup(), which is overwritten by a subsequent sym_calc_value() call.
It results in a memory leak.

Instead, only the pointer should be copied.

Below is a test case, with a summary from Valgrind.

[Test Kconfig]

  config FOO
          int "foo"
          range 10 20

[Test .config]

  CONFIG_FOO=0

[Before]

  LEAK SUMMARY:
     definitely lost: 3 bytes in 1 blocks
     indirectly lost: 0 bytes in 0 blocks
       possibly lost: 0 bytes in 0 blocks
     still reachable: 17,465 bytes in 21 blocks
          suppressed: 0 bytes in 0 blocks

[After]

  LEAK SUMMARY:
     definitely lost: 0 bytes in 0 blocks
     indirectly lost: 0 bytes in 0 blocks
       possibly lost: 0 bytes in 0 blocks
     still reachable: 17,462 bytes in 20 blocks
          suppressed: 0 bytes in 0 blocks

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-12-13 18:36:32 +01:00
..
lxdialog kconfig: lxdialog: A spello fix and a punctuation added 2021-04-14 15:22:49 +09:00
tests kconfig: change "modules" from sub-option to first-level attribute 2021-04-14 15:22:49 +09:00
.gitignore kconfig: refactor .gitignore 2021-04-26 02:17:39 +09:00
conf.c kconfig: constify long_opts 2021-06-05 23:49:46 +09:00
confdata.c kconfig: Update config changed flag before calling callback 2023-03-22 13:31:29 +01:00
expr.c
expr.h kconfig: remove allnoconfig_y option 2021-04-14 15:22:49 +09:00
gconf-cfg.sh kbuild: Allow kernel installation packaging to override pkg-config 2023-02-01 08:27:30 +01:00
gconf.c kconfig: highlight gconfig 'comment' lines with '***' 2021-04-19 14:57:16 +09:00
gconf.glade
images.c kconfig: constify XPM data 2020-08-14 13:30:03 +09:00
images.h kconfig: constify XPM data 2020-08-14 13:30:03 +09:00
internal.h kconfig: split menu.c out of parser.y 2021-04-14 15:26:09 +09:00
lexer.l kconfig: change "modules" from sub-option to first-level attribute 2021-04-14 15:22:49 +09:00
list.h
lkc.h kconfig: remove unused PACKAGE definition 2021-04-19 14:50:16 +09:00
lkc_proto.h kconfig: change sym_change_count to a boolean flag 2021-04-14 15:22:49 +09:00
Makefile kconfig: split menu.c out of parser.y 2021-04-14 15:26:09 +09:00
mconf-cfg.sh kbuild: Allow kernel installation packaging to override pkg-config 2023-02-01 08:27:30 +01:00
mconf.c kconfig: mconf,nconf: remove unneeded '\0' termination after snprintf() 2021-04-14 15:22:49 +09:00
menu.c kconfig: split menu.c out of parser.y 2021-04-14 15:26:09 +09:00
merge_config.sh scripts: merge_config: add strict mode to fail upon any redefinition 2021-08-10 08:23:39 +09:00
nconf-cfg.sh kbuild: Allow kernel installation packaging to override pkg-config 2023-02-01 08:27:30 +01:00
nconf.c kconfig: nconf: stop endless search loops 2021-04-16 14:39:12 +09:00
nconf.gui.c kconfig: nconf: refactor in print_in_middle() 2021-04-14 15:25:43 +09:00
nconf.h kconfig: nconf: refactor in print_in_middle() 2021-04-14 15:25:43 +09:00
parser.y kconfig: split menu.c out of parser.y 2021-04-14 15:26:09 +09:00
preprocess.c kconfig: fix possible buffer overflow 2023-09-19 12:22:56 +02:00
qconf-cfg.sh kbuild: Allow kernel installation packaging to override pkg-config 2023-02-01 08:27:30 +01:00
qconf.cc kconfig: highlight xconfig 'comment' lines with '***' 2021-04-19 14:58:23 +09:00
qconf.h kconfig: qconf: remove Y, M, N columns 2020-09-25 00:37:13 +09:00
streamline_config.pl streamline_config.pl: add softtabstop=4 for vim users 2021-06-29 10:53:45 -07:00
symbol.c kconfig: fix memory leak from range properties 2023-12-13 18:36:32 +01:00
util.c