EGD bugfix.
authorUlf Möller <ulf@openssl.org>
Fri, 25 Feb 2000 14:16:43 +0000 (14:16 +0000)
committerUlf Möller <ulf@openssl.org>
Fri, 25 Feb 2000 14:16:43 +0000 (14:16 +0000)
Submitted by: Lutz Jaenicke <Lutz.Jaenicke@aet.TU-Cottbus.DE>

apps/app_rand.c
crypto/rand/rand_egd.c

index ea35bf9..f7f1338 100644 (file)
@@ -162,7 +162,8 @@ long app_RAND_load_files(char *name)
        char *p,*n;
        int last;
        long tot=0;
-
+    int egd;
+       
        for (;;)
                {
                last=0;
@@ -173,7 +174,8 @@ long app_RAND_load_files(char *name)
                name=p+1;
                if (*n == '\0') break;
 
-               tot+=RAND_egd(n);
+        egd=RAND_egd(n);
+               if (egd > 0) tot+=egd;
                tot+=RAND_load_file(n,1024L*1024L);
                if (last) break;
                }
index 3a081d4..b640469 100644 (file)
@@ -96,6 +96,7 @@ int RAND_egd(const char *path)
        buf[1] = 255;
        write(fd, buf, 2);
        if (read(fd, buf, 1) != 1) goto err;
+    if (buf[0] == 0) goto err;
        num = read(fd, buf, 255);
        if (num < 1) goto err;
        RAND_seed(buf, num);