summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2018-05-28 11:21:41 +0200
committerMasahiro Yamada <yamada.masahiro@socionext.com>2018-05-28 20:28:58 +0200
commitbb222ceeb327a9bd484ba763fe86644f6d97e0cc (patch)
tree1cc9787c75bdebeee2e6a358833a4316c1d9b8c2 /scripts
parentkconfig: reference environment variables directly and remove 'option env=' (diff)
downloadlinux-bb222ceeb327a9bd484ba763fe86644f6d97e0cc.tar.xz
linux-bb222ceeb327a9bd484ba763fe86644f6d97e0cc.zip
kconfig: remove string expansion in file_lookup()
There are two callers of file_lookup(), but there is no more reason to expand the given path. [1] zconf_initscan() This is used to open the first Kconfig. sym_expand_string_value() has never been used in a useful way here; before opening the first Kconfig file, obviously there is no symbol to expand. If you use expand_string_value() instead, environments in KBUILD_KCONFIG would be expanded, but I do not see practical benefits for that. [2] zconf_nextfile() This is used to open the next file from 'source' statement. Symbols in the path like "arch/$SRCARCH/Kconfig" needed expanding, but it was replaced with the direct environment expansion. The environment has already been expanded before the token is passed to the parser. By the way, file_lookup() was already buggy; it expanded a given path, but it used the path before expansion for look-up: if (!strcmp(name, file->name)) { Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Kees Cook <keescook@chromium.org> Reviewed-by: Ulf Magnusson <ulfalizer@gmail.com>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/kconfig/util.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/scripts/kconfig/util.c b/scripts/kconfig/util.c
index 703ee4904613..a365594770d9 100644
--- a/scripts/kconfig/util.c
+++ b/scripts/kconfig/util.c
@@ -14,18 +14,16 @@
struct file *file_lookup(const char *name)
{
struct file *file;
- char *file_name = sym_expand_string_value(name);
for (file = file_list; file; file = file->next) {
if (!strcmp(name, file->name)) {
- free(file_name);
return file;
}
}
file = xmalloc(sizeof(*file));
memset(file, 0, sizeof(*file));
- file->name = file_name;
+ file->name = xstrdup(name);
file->next = file_list;
file_list = file;
return file;