crypto: mv_cesa - make count_sgs() null-pointer proof
authorPhil Sutter <phil.sutter@viprinet.com>
Thu, 5 May 2011 13:29:06 +0000 (15:29 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 11 May 2011 05:06:22 +0000 (15:06 +1000)
This also makes the dummy scatterlist in mv_hash_final() needless, so
drop it.

XXX: should this routine be made pulicly available? There are probably
other users with their own implementations.

Signed-off-by: Phil Sutter <phil.sutter@viprinet.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/mv_cesa.c

index d704ed0e7d3dda9f8cc8ea6d9ecfc98b82e7106e..3cf303ee3fe3449efd185a8567252a36759d5bca 100644 (file)
@@ -133,7 +133,6 @@ struct mv_req_hash_ctx {
        int extra_bytes;        /* unprocessed bytes in buffer */
        enum hash_op op;
        int count_add;
-       struct scatterlist dummysg;
 };
 
 static void compute_aes_dec_key(struct mv_ctx *ctx)
@@ -482,7 +481,7 @@ static int count_sgs(struct scatterlist *sl, unsigned int total_bytes)
        int i = 0;
        size_t cur_len;
 
-       while (1) {
+       while (sl) {
                cur_len = sl[i].length;
                ++i;
                if (total_bytes > cur_len)
@@ -711,10 +710,7 @@ static int mv_hash_update(struct ahash_request *req)
 static int mv_hash_final(struct ahash_request *req)
 {
        struct mv_req_hash_ctx *ctx = ahash_request_ctx(req);
-       /* dummy buffer of 4 bytes */
-       sg_init_one(&ctx->dummysg, ctx->buffer, 4);
-       /* I think I'm allowed to do that... */
-       ahash_request_set_crypt(req, &ctx->dummysg, req->result, 0);
+
        mv_update_hash_req_ctx(ctx, 1, 0);
        return mv_handle_req(&req->base);
 }