early init: fix error handling when opening /dev/console
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 17 Dec 2019 21:10:11 +0000 (13:10 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 17 Dec 2019 21:10:11 +0000 (13:10 -0800)
The comment says "this should never fail", but it definitely can fail
when you have odd initial boot filesystems, or kernel configurations.

So get the error handling right: filp_open() returns an error pointer.

Reported-by: Jesse Barnes <jsbarnes@google.com>
Reported-by: youling 257 <youling257@gmail.com>
Fixes: 8243186f0cc7 ("fs: remove ksys_dup()")
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
init/main.c

index ec3a146..1ecfd43 100644 (file)
@@ -1163,7 +1163,7 @@ void console_on_rootfs(void)
 
        /* Open /dev/console in kernelspace, this should never fail */
        file = filp_open("/dev/console", O_RDWR, 0);
-       if (!file)
+       if (IS_ERR(file))
                goto err_out;
 
        /* create stdin/stdout/stderr, this should never fail */