virCryptoGenerateRandom: Explain gnults error

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>
This commit is contained in:
Michal Privoznik 2018-05-29 07:50:29 +02:00
parent d4e66f7639
commit a5865cdbea

View 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;
}