s390/crypto: Fix unsigned variable compared with zero
authorYueHaibing <yuehaibing@huawei.com>
Thu, 14 Nov 2019 07:30:05 +0000 (15:30 +0800)
committerVasily Gorbik <gor@linux.ibm.com>
Wed, 20 Nov 2019 11:58:12 +0000 (12:58 +0100)
s390_crypto_shash_parmsize() return type is int, it
should not be stored in a unsigned variable, which
compared with zero.

Reported-by: Hulk Robot <hulkci@huawei.com>
Fixes: 3c2eb6b76cab ("s390/crypto: Support for SHA3 via CPACF (MSA6)")
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: Joerg Schmidbauer <jschmidb@linux.vnet.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/crypto/sha_common.c

index d39e0f07921708132c18be6e955d24d7dc4ad119..686fe7aa192f457b9862c9a76298cea85acc128d 100644 (file)
@@ -74,14 +74,17 @@ int s390_sha_final(struct shash_desc *desc, u8 *out)
        struct s390_sha_ctx *ctx = shash_desc_ctx(desc);
        unsigned int bsize = crypto_shash_blocksize(desc->tfm);
        u64 bits;
-       unsigned int n, mbl_offset;
+       unsigned int n;
+       int mbl_offset;
 
        n = ctx->count % bsize;
        bits = ctx->count * 8;
-       mbl_offset = s390_crypto_shash_parmsize(ctx->func) / sizeof(u32);
+       mbl_offset = s390_crypto_shash_parmsize(ctx->func);
        if (mbl_offset < 0)
                return -EINVAL;
 
+       mbl_offset = mbl_offset / sizeof(u32);
+
        /* set total msg bit length (mbl) in CPACF parmblock */
        switch (ctx->func) {
        case CPACF_KLMD_SHA_1: