OSDN Git Service

crypto: assert that qcrypto_hash_digest_len is in range
authorPaolo Bonzini <pbonzini@redhat.com>
Fri, 20 May 2016 09:09:54 +0000 (11:09 +0200)
committerDaniel P. Berrange <berrange@redhat.com>
Mon, 13 Jun 2016 11:41:17 +0000 (12:41 +0100)
Otherwise unintended results could happen.  For example,
Coverity reports a division by zero in qcrypto_afsplit_hash.
While this cannot really happen, it shows that the contract
of qcrypto_hash_digest_len can be improved.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
crypto/hash.c

index b90af34..2907bff 100644 (file)
@@ -36,9 +36,7 @@ static size_t qcrypto_hash_alg_size[QCRYPTO_HASH_ALG__MAX] = {
 
 size_t qcrypto_hash_digest_len(QCryptoHashAlgorithm alg)
 {
-    if (alg >= G_N_ELEMENTS(qcrypto_hash_alg_size)) {
-        return 0;
-    }
+    assert(alg < G_N_ELEMENTS(qcrypto_hash_alg_size));
     return qcrypto_hash_alg_size[alg];
 }