crypto: img-hash - shift wrapping bug in img_hash_hw_init()
authorDan Carpenter <dan.carpenter@oracle.com>
Mon, 23 Mar 2015 11:03:55 +0000 (14:03 +0300)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 23 Mar 2015 11:06:50 +0000 (22:06 +1100)
"hdev->req->nbytes" is an unsigned int so we so we lose the upper 3 bits
to the shift wrap bug.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/img-hash.c

index 601ab357f661f22a33511ce43d5bd5a4798fdee3..ad47d0d6109845c810055fdb2ddaba8fa9d62039 100644 (file)
@@ -464,7 +464,7 @@ static int img_hash_hw_init(struct img_hash_dev *hdev)
        img_hash_write(hdev, CR_RESET, CR_RESET_UNSET);
        img_hash_write(hdev, CR_INTENAB, CR_INT_NEW_RESULTS_SET);
 
-       nbits = (hdev->req->nbytes << 3);
+       nbits = (u64)hdev->req->nbytes << 3;
        u = nbits >> 32;
        l = nbits;
        img_hash_write(hdev, CR_MESSAGE_LENGTH_H, u);