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 ea35bf9b1d712ae5687b51314e774379c671efd6..f7f133831d2afe62107a4ea8dcf49d5d7912918b 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 3a081d4f62fe5d49005f3dc52d33feb756e93177..b640469faf74c4ee557b8a64e7f4e0db4a31ddf4 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);