]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virCryptoGenerateRandom: Explain gnults error
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 29 May 2018 05:50:29 +0000 (07:50 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 5 Jun 2018 08:31:19 +0000 (10:31 +0200)
When generating random stream using gnults fails an error is
reported. However, the error is not helpful as it contains only
an integer error code (a negative number). Use gnutls_strerror()
to turn the error code into a string explaining what went wrong.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/util/vircrypto.c

index 930fa3b215f3e08440557a6ce6f679bc768a9cf9..9879c31555e018317a0dabd2189c57d9379ef77d 100644 (file)
@@ -323,7 +323,8 @@ virCryptoEncryptData(virCryptoCipher algorithm,
  * Since the gnutls_rnd could be missing, provide an alternate less
  * secure mechanism to at least have something.
  *
- * Returns pointer memory containing byte stream on success, NULL on failure
+ * Returns pointer memory containing byte stream on success,
+ * NULL on failure (with error reported)
  */
 uint8_t *
 virCryptoGenerateRandom(size_t nbytes)
@@ -338,7 +339,8 @@ virCryptoGenerateRandom(size_t nbytes)
     /* Generate the byte stream using gnutls_rnd() if possible */
     if ((rv = gnutls_rnd(GNUTLS_RND_RANDOM, buf, nbytes)) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("failed to generate byte stream, rv=%d"), rv);
+                       _("failed to generate byte stream: %s"),
+                       gnutls_strerror(rv));
         VIR_FREE(buf);
         return NULL;
     }