Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bb222cee authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

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: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: default avatarKees Cook <keescook@chromium.org>
Reviewed-by: default avatarUlf Magnusson <ulfalizer@gmail.com>
parent 104daea1
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -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;