read_entropy_from_device on partial read will not fill buffer
authorEzra Peisach <epeisach@mit.edu>
Mon, 20 Aug 2007 14:50:41 +0000 (14:50 +0000)
committerEzra Peisach <epeisach@mit.edu>
Mon, 20 Aug 2007 14:50:41 +0000 (14:50 +0000)
commit6fd1d4a89ac144dd4706dc98e4be0a5ff4823411
tree154b857a1c89e93a5d3b68d117f0c71d7491a570
parent2fde4943b8f8472a6fca50339c94b41420dd5d1d
read_entropy_from_device on partial read will not fill buffer

read_entropy_from_device() will loop in read until the desired number
of bytes are read from the device (/dev/random, /dev/urandom).  I have
observed that for /dev/random, if there is not enough bits available
for reading - it will return a partial read.  The code would loop in
this case, but never advance the location to place the new bytes -
hence the start of the buffer would be filled again - leaving the tail
end as stack garbage.

ticket: new
tags: pullup

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@19845 dc483132-0cff-0310-8789-dd5450dbe970
src/lib/crypto/prng.c