forked from Minki/linux
crypto: tcrypt - Fix potential leak in test_aead_speed() if aad_size is too big
Fix a potential memory leak in the error handling of test_aead_speed(). In case the size check on the associate data length parameter fails, the function goes through the wrong exit label. Reported by Coverity - CID 1163870. Signed-off-by: Christian Engelmayer <cengelma@gmx.at> Acked-by: Tim Chen <tim.c.chen@linux.intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
3d67be2761
commit
ac5f863f8c
@ -282,6 +282,11 @@ static void test_aead_speed(const char *algo, int enc, unsigned int sec,
|
||||
unsigned int *b_size;
|
||||
unsigned int iv_len;
|
||||
|
||||
if (aad_size >= PAGE_SIZE) {
|
||||
pr_err("associate data length (%u) too big\n", aad_size);
|
||||
return;
|
||||
}
|
||||
|
||||
if (enc == ENCRYPT)
|
||||
e = "encryption";
|
||||
else
|
||||
@ -323,14 +328,7 @@ static void test_aead_speed(const char *algo, int enc, unsigned int sec,
|
||||
b_size = aead_sizes;
|
||||
do {
|
||||
assoc = axbuf[0];
|
||||
|
||||
if (aad_size < PAGE_SIZE)
|
||||
memset(assoc, 0xff, aad_size);
|
||||
else {
|
||||
pr_err("associate data length (%u) too big\n",
|
||||
aad_size);
|
||||
goto out_nosg;
|
||||
}
|
||||
memset(assoc, 0xff, aad_size);
|
||||
sg_init_one(&asg[0], assoc, aad_size);
|
||||
|
||||
if ((*keysize + *b_size) > TVMEMSIZE * PAGE_SIZE) {
|
||||
|
Loading…
Reference in New Issue
Block a user