]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
input: avoid NULL dereference
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Tue, 3 Oct 2023 01:09:01 +0000 (03:09 +0200)
committerTom Rini <trini@konsulko.com>
Wed, 11 Oct 2023 14:35:24 +0000 (10:35 -0400)
Before using the result of env_get("stdin") we must check if it is NULL.

Avoid #if. This resolves the -Wunused-but-set-variable issue and we don't
need a dummy assignment in the else branch. Anyway this warning is
disabled in the Makefile.

For sake of readability use an early return after the configuration check.

Checking CONFIG_SPL_BUILD is incorrect as env_get() is only defined if
CONFIG_$(SPL_TPL)ENV_SUPPORT=y.

Fixes: 985ca3945fa3 ("spl: input: Allow input in SPL and TPL")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
drivers/input/input.c

index a4341e8c7ce93a6a61f23182b1bbc5baa45dabeb..8a6506e7c6f9f237386861ae5ec5ec60f379b292 100644 (file)
@@ -669,17 +669,22 @@ int input_stdio_register(struct stdio_dev *dev)
        int error;
 
        error = stdio_register(dev);
-#if !defined(CONFIG_SPL_BUILD) || CONFIG_IS_ENABLED(ENV_SUPPORT)
-       /* check if this is the standard input device */
-       if (!error && strcmp(env_get("stdin"), dev->name) == 0) {
-               /* reassign the console */
-               if (OVERWRITE_CONSOLE ||
-                               console_assign(stdin, dev->name))
-                       return -1;
+
+       if (!CONFIG_IS_ENABLED(ENV_SUPPORT))
+               return 0;
+
+       if (!error) {
+               const char *cstdin;
+
+               /* check if this is the standard input device */
+               cstdin = env_get("stdin");
+               if (cstdin && !strcmp(cstdin, dev->name)) {
+                       /* reassign the console */
+                       if (OVERWRITE_CONSOLE ||
+                           console_assign(stdin, dev->name))
+                               return -1;
+               }
        }
-#else
-       error = error;
-#endif
 
        return 0;
 }