diff options
| author | Theodore Ts'o <tytso@mit.edu> | 2016-06-13 10:10:51 -0400 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-05-07 12:44:44 +0200 |
| commit | 331904f2b2e2137b5b0dcbcdfe982026c7b8567a (patch) | |
| tree | 466372f97ece9c2204eaa50373676600945bbe64 /drivers/char | |
| parent | 57dcab3f56396408a7e53665edcf91142a1eb9a9 (diff) | |
random: print a warning for the first ten uninitialized random users
Since systemd is consistently using /dev/urandom before it is
initialized, we can't see the other potentially dangerous users of
/dev/urandom immediately after boot. So print the first ten such
complaints instead.
Cc: stable@kernel.org
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: mydongistiny <jaysonedson@gmail.com>
Signed-off-by: Joe Maples <joe@frap129.org>
Diffstat (limited to 'drivers/char')
| -rw-r--r-- | drivers/char/random.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/char/random.c b/drivers/char/random.c index 49b485ae6..a1ca49f55 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -1461,12 +1461,16 @@ random_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos) static ssize_t urandom_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos) { + static int maxwarn = 10; int ret; - if (unlikely(nonblocking_pool.initialized == 0)) - printk_once(KERN_NOTICE "random: %s urandom read " - "with %d bits of entropy available\n", - current->comm, nonblocking_pool.entropy_total); + if (unlikely(nonblocking_pool.initialized == 0) && + maxwarn > 0) { + maxwarn--; + printk(KERN_NOTICE "random: %s: uninitialized urandom read " + "(%zd bytes read, %d bits of entropy available)\n", + current->comm, nbytes, nonblocking_pool.entropy_total); + } nbytes = min_t(size_t, nbytes, INT_MAX >> (ENTROPY_SHIFT + 3)); ret = extract_entropy_user(&nonblocking_pool, buf, nbytes); |
