Author: abartlet
Date: 2004-09-06 02:55:06 +0000 (Mon, 06 Sep 2004)
New Revision: 46

WebSVN: 
http://websvn.samba.org/websvn/changeset.php?rep=lorikeet&path=/trunk/heimdal/lib/krb5&rev=46&nolog=1

Log:
Adding uninitialised memory into the entorpy pool is a sure-fire way
to get valgrind errors.

(This didn't fix all of them - OpenSSL is still a problem - but it's a
start).

Andrew Bartlett

Modified:
   trunk/heimdal/lib/krb5/crypto.c


Changeset:
Modified: trunk/heimdal/lib/krb5/crypto.c
===================================================================
--- trunk/heimdal/lib/krb5/crypto.c     2004-09-06 02:53:38 UTC (rev 45)
+++ trunk/heimdal/lib/krb5/crypto.c     2004-09-06 02:55:06 UTC (rev 46)
@@ -3724,6 +3724,7 @@
 seed_something(void)
 {
     int fd = -1;
+    size_t bytes;
     char buf[1024], seedfile[256];
 
     /* If there is a seed file, load it. But such a file cannot be trusted,
@@ -3731,9 +3732,13 @@
     if (RAND_file_name(seedfile, sizeof(seedfile))) {
        fd = open(seedfile, O_RDONLY);
        if (fd >= 0) {
-           read(fd, buf, sizeof(buf));
-           /* Use the full buffer anyway */
-           RAND_add(buf, sizeof(buf), 0.0);
+           bytes = read(fd, buf, sizeof(buf));
+           if (bytes > 0) {
+               RAND_add(buf, bytes, 0.0);
+           } else {
+               seedfile[0] = '\0';
+           }
+           close(fd);
        } else
            seedfile[0] = '\0';
     } else

Reply via email to