Skip to content

Commit

Permalink
crypto: mv_cesa - make count_sgs() null-pointer proof
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Phil Sutter authored and Herbert Xu committed May 11, 2011
1 parent 7759995 commit 6ef8450
Showing 1 changed file with 2 additions and 6 deletions.
8 changes: 2 additions & 6 deletions drivers/crypto/mv_cesa.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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);
}
Expand Down

0 comments on commit 6ef8450

Please sign in to comment.