[libvirt] [PATCH 03/10] virCryptoGenerateRandom: Explain gnults error

Michal Privoznik mprivozn at redhat.com
Tue May 29 08:24:39 UTC 2018


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 at redhat.com>
---
 src/util/vircrypto.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/util/vircrypto.c b/src/util/vircrypto.c
index 930fa3b215..9879c31555 100644
--- a/src/util/vircrypto.c
+++ b/src/util/vircrypto.c
@@ -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;
     }
-- 
2.16.1




More information about the libvir-list mailing list