]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - gcrypt.c
mixer: Use lsu_merge_config_file_options().
[paraslash.git] / gcrypt.c
index d5cb49a45c2d6da4e6249b6810a298a0460c8b1f..052546dd60733d143e6c12bdcfcc92ce36ac5e50 100644 (file)
--- a/gcrypt.c
+++ b/gcrypt.c
@@ -52,21 +52,22 @@ void get_random_bytes_or_die(unsigned char *buf, int num)
 }
 
 /*
- * This is called at the beginning of every program that uses libgcrypt. We
- * don't have to initialize any random seed here, but we must initialize the
- * gcrypt library. This task is performed by gcry_check_version() which can
- * also check that the gcrypt library version is at least the minimal required
- * version.
+ * This is called at the beginning of every program that uses libgcrypt. The
+ * call to gcry_check_version() initializes the gcrypt library and checks that
+ * we have at least the minimal required version.
  */
 void init_random_seed_or_die(void)
 {
        const char *req_ver = "1.5.0";
+       int seed;
 
-       if (gcry_check_version(req_ver))
-               return;
-       PARA_EMERG_LOG("fatal: need at least libgcrypt-%s, have: %s\n",
-               req_ver, gcry_check_version(NULL));
-       exit(EXIT_FAILURE);
+       if (!gcry_check_version(req_ver)) {
+               PARA_EMERG_LOG("fatal: need at least libgcrypt-%s, have: %s\n",
+                       req_ver, gcry_check_version(NULL));
+               exit(EXIT_FAILURE);
+       }
+       get_random_bytes_or_die((unsigned char *)&seed, sizeof(seed));
+       srandom(seed);
 }
 
 /** S-expression for the public part of an RSA key. */