mirror of
https://github.com/openssl/openssl.git
synced 2024-11-27 05:21:51 +08:00
Fix coverity-1604661
Coverity called out an error in asn1parse_main, indicating that the for(;;) loop which repeatedly reads from a bio and updates the length value num, may overflow said value prior to exiting the loop. We could probably call this a false positive, but on very large PEM file, I suppose it could happen, so just add a check to ensure that num doesn't go from a large positive to a large negative value inside the loop Fixes openssl/private#571 Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24910)
This commit is contained in:
parent
0b67643ade
commit
50066236eb
@ -216,6 +216,9 @@ int asn1parse_main(int argc, char **argv)
|
||||
i = BIO_read(in, &(buf->data[num]), BUFSIZ);
|
||||
if (i <= 0)
|
||||
break;
|
||||
/* make sure num doesn't overflow */
|
||||
if (i > LONG_MAX - num)
|
||||
goto end;
|
||||
num += i;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user