Fix hang in EGD/PRNGD query when communication socket is closed
prematurely by EGD/PRNGD. PR: 1014 Submitted by: Darren Tucker <dtucker@zip.com.au>
This commit is contained in:
parent
9d10b15ef9
commit
f69a8aebab
4
CHANGES
4
CHANGES
@ -750,6 +750,10 @@
|
|||||||
|
|
||||||
Changes between 0.9.7e and 0.9.7f [XX xxx XXXX]
|
Changes between 0.9.7e and 0.9.7f [XX xxx XXXX]
|
||||||
|
|
||||||
|
*) Fix hang in EGD/PRNGD query when communication socket is closed
|
||||||
|
prematurely by EGD/PRNGD.
|
||||||
|
[Darren Tucker <dtucker@zip.com.au> via Lutz Jänicke, resolves #1014]
|
||||||
|
|
||||||
*) Prompt for pass phrases when appropriate for PKCS12 input format.
|
*) Prompt for pass phrases when appropriate for PKCS12 input format.
|
||||||
[Steve Henson]
|
[Steve Henson]
|
||||||
|
|
||||||
|
@ -216,7 +216,9 @@ int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
|
|||||||
while (numbytes != 1)
|
while (numbytes != 1)
|
||||||
{
|
{
|
||||||
num = read(fd, egdbuf, 1);
|
num = read(fd, egdbuf, 1);
|
||||||
if (num >= 0)
|
if (num == 0)
|
||||||
|
goto err; /* descriptor closed */
|
||||||
|
else if (num > 0)
|
||||||
numbytes += num;
|
numbytes += num;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -246,7 +248,9 @@ int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
|
|||||||
while (numbytes != egdbuf[0])
|
while (numbytes != egdbuf[0])
|
||||||
{
|
{
|
||||||
num = read(fd, retrievebuf + numbytes, egdbuf[0] - numbytes);
|
num = read(fd, retrievebuf + numbytes, egdbuf[0] - numbytes);
|
||||||
if (num >= 0)
|
if (num == 0)
|
||||||
|
goto err; /* descriptor closed */
|
||||||
|
else if (num > 0)
|
||||||
numbytes += num;
|
numbytes += num;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user