]> git.itanic.dy.fi Git - linux-stable/commitdiff
random: use init_utsname() instead of utsname()
authorJason A. Donenfeld <Jason@zx2c4.com>
Tue, 27 Sep 2022 09:26:44 +0000 (11:26 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Thu, 29 Sep 2022 19:37:27 +0000 (21:37 +0200)
Rather than going through the current-> indirection for utsname, at this
point in boot, init_utsname()==utsname(), so just use it directly that
way. Additionally, init_utsname() appears to be available nearly always,
so move it into random_init_early().

Suggested-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
drivers/char/random.c

index 1427f66252c68759d39fef1100b074e2c3914f36..f2aa3ab1b458a903180acbf1fcb23060114274cb 100644 (file)
@@ -802,6 +802,7 @@ void __init random_init_early(const char *command_line)
                ++i;
        }
 
+       _mix_pool_bytes(init_utsname(), sizeof(*(init_utsname())));
        _mix_pool_bytes(command_line, strlen(command_line));
 
        /* Reseed if already seeded by earlier phases. */
@@ -820,7 +821,6 @@ void __init random_init(void)
        unsigned long entropy = random_get_entropy();
        ktime_t now = ktime_get_real();
 
-       _mix_pool_bytes(utsname(), sizeof(*(utsname())));
        _mix_pool_bytes(&now, sizeof(now));
        _mix_pool_bytes(&entropy, sizeof(entropy));
        add_latent_entropy();