Re: [PATCH v5] printk: hash addresses printed with %p

From: Kees Cook
Date: Thu Oct 19 2017 - 13:18:10 EST


On Wed, Oct 18, 2017 at 10:49 PM, Jason A. Donenfeld <Jason@xxxxxxxxx> wrote:
> static void fill_random_ptr_key(struct random_ready_callback *rdy)
> {
> get_random_bytes(&ptr_secret, sizeof(ptr_secret));
> static_branch_disable(&no_ptr_secret);
> }
>
> static struct random_ready_callback random_ready = {
> .func = fill_random_ptr_key
> };
>
> static int __init initialize_ptr_random(void)
> {
> int ret = add_random_ready_callback(&random_ready);
>
> if (!ret)
> return 0;
> else if (ret == -EALREADY) {
> fill_random_ptr_key(&random_ready);
> return 0;
> }
>
> return ret;
> }
> early_initcall(initialize_ptr_random);

Tangent: why is the random_ready API designed with -EALREADY? Couldn't
add_random_ready_callback() just perform the call itself and avoid
needing all the callers to check for -EALREADY?

-Kees

--
Kees Cook
Pixel Security