Skip to content

Commit

Permalink
vsprintf: Use hw RNG for ptr_key
Browse files Browse the repository at this point in the history
Currently we must wait for enough entropy to become available before
hashed pointers can be printed.  We can remove this wait by using the
hw RNG if available.

Use hw RNG to get keying material.

Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Suggested-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Tobin C. Harding <me@tobin.cc>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
  • Loading branch information
Tobin C. Harding authored and Theodore Ts'o committed Jul 18, 2018
1 parent 753d433 commit 1c4facb
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion lib/vsprintf.c
Original file line number Diff line number Diff line change
Expand Up @@ -1675,8 +1675,16 @@ static struct random_ready_callback random_ready = {

static int __init initialize_ptr_random(void)
{
int ret = add_random_ready_callback(&random_ready);
int key_size = sizeof(ptr_key);
int ret;

/* Use hw RNG if available. */
if (get_random_bytes_arch(&ptr_key, key_size) == key_size) {
static_branch_disable(&not_filled_random_ptr_key);
return 0;
}

ret = add_random_ready_callback(&random_ready);
if (!ret) {
return 0;
} else if (ret == -EALREADY) {
Expand Down

0 comments on commit 1c4facb

Please sign in to comment.