random: Minor fix for getting the rndjent version.
authorWerner Koch <wk@gnupg.org>
Mon, 17 Jul 2017 10:34:13 +0000 (12:34 +0200)
committerWerner Koch <wk@gnupg.org>
Mon, 17 Jul 2017 12:05:08 +0000 (14:05 +0200)
* random/rndjent.c (_gcry_rndjent_get_version): Always set R_ACTIVE.
* tests/version.c (test_get_config): Check number of fields for
rng-type.

Signed-off-by: Werner Koch <wk@gnupg.org>
random/rndjent.c
tests/version.c

index b1432e4..6e56c8a 100644 (file)
@@ -327,6 +327,8 @@ _gcry_rndjent_poll (void (*add)(const void*, size_t, enum random_origins),
 unsigned int
 _gcry_rndjent_get_version (int *r_active)
 {
+  if (r_active)
+    *r_active = 0;
 #ifdef USE_JENT
   if ( is_rng_available () )
     {
index 6a01610..7e68cd6 100644 (file)
@@ -43,6 +43,8 @@ static void
 test_get_config (void)
 {
   char *string;
+  const char *s;
+  int i;
 
   string = gcry_get_config (0, NULL);
   if (!string)
@@ -81,6 +83,21 @@ test_get_config (void)
     fail ("gcry_get_config(\"no-such-item\") returned wrong error: %s\n",
           gpg_strerror (gpg_error_from_syserror ()));
 
+  /* Check the rng-type.  */
+  xfree (string);
+  string = gcry_get_config (0, "rng-type");
+  if (!string)
+    fail ("gcry_get_config(\"rng-type\") not returned\n");
+  else
+    {
+      for (i=0, s = string; *s; s++)
+        if (*s == ':')
+          i++;
+      if (i < 5)
+        fail ("gcry_get_config(\"rng-type\") has not enough fields\n");
+    }
+
+
   xfree (string);
 }