diff mbox

crypto: testmgr - fix RNG return code enforcement

Message ID 20150311121107.GY786@surtsey.monkey.lab (mailing list archive)
State Accepted
Delegated to: Herbert Xu
Headers show

Commit Message

Alexander Bergmann March 11, 2015, 12:11 p.m. UTC
From 0c7233769665f03e9f91342770dba7279f928c23 Mon Sep 17 00:00:00 2001
From: Stephan Mueller <smueller@chronox.de>
Date: Tue, 10 Mar 2015 17:00:36 +0100
Subject: [PATCH] crypto: testmgr - fix RNG return code enforcement

Due to the change to RNGs to always return zero in success case, the
invocation of the RNGs in the test manager must be updated as otherwise
the RNG self tests are not properly executed any more.

Signed-off-by: Stephan Mueller <smueller@chronox.de>
Signed-off-by: Alexander Bergmann <abergmann@suse.com>
---
 crypto/testmgr.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

Comments

Herbert Xu March 13, 2015, 10:38 a.m. UTC | #1
On Wed, Mar 11, 2015 at 01:11:07PM +0100, Alexander Bergmann wrote:
> From 0c7233769665f03e9f91342770dba7279f928c23 Mon Sep 17 00:00:00 2001
> From: Stephan Mueller <smueller@chronox.de>
> Date: Tue, 10 Mar 2015 17:00:36 +0100
> Subject: [PATCH] crypto: testmgr - fix RNG return code enforcement
> 
> Due to the change to RNGs to always return zero in success case, the
> invocation of the RNGs in the test manager must be updated as otherwise
> the RNG self tests are not properly executed any more.
> 
> Signed-off-by: Stephan Mueller <smueller@chronox.de>
> Signed-off-by: Alexander Bergmann <abergmann@suse.com>

Applied.
diff mbox

Patch

diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index f4ed6d4..1f879ad 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -1474,11 +1474,11 @@  static int test_cprng(struct crypto_rng *tfm, struct cprng_testvec *template,
 		for (j = 0; j < template[i].loops; j++) {
 			err = crypto_rng_get_bytes(tfm, result,
 						   template[i].rlen);
-			if (err != template[i].rlen) {
+			if (err < 0) {
 				printk(KERN_ERR "alg: cprng: Failed to obtain "
 				       "the correct amount of random data for "
-				       "%s (requested %d, got %d)\n", algo,
-				       template[i].rlen, err);
+				       "%s (requested %d)\n", algo,
+				       template[i].rlen);
 				goto out;
 			}
 		}
@@ -1759,7 +1759,7 @@  static int drbg_cavs_test(struct drbg_testvec *test, int pr,
 		ret = crypto_drbg_get_bytes_addtl(drng,
 			buf, test->expectedlen, &addtl);
 	}
-	if (ret <= 0) {
+	if (ret < 0) {
 		printk(KERN_ERR "alg: drbg: could not obtain random data for "
 		       "driver %s\n", driver);
 		goto outbuf;
@@ -1774,7 +1774,7 @@  static int drbg_cavs_test(struct drbg_testvec *test, int pr,
 		ret = crypto_drbg_get_bytes_addtl(drng,
 			buf, test->expectedlen, &addtl);
 	}
-	if (ret <= 0) {
+	if (ret < 0) {
 		printk(KERN_ERR "alg: drbg: could not obtain random data for "
 		       "driver %s\n", driver);
 		goto outbuf;