diff --git a/lib/asn1/check-ber.c b/lib/asn1/check-ber.c index 7b4a49252..57450f422 100644 --- a/lib/asn1/check-ber.c +++ b/lib/asn1/check-ber.c @@ -265,6 +265,7 @@ test_ber(void) if (ret) return 1; + free_ContentInfo(&ci); return 0; } diff --git a/lib/asn1/check-der.c b/lib/asn1/check-der.c index 007197eb1..e85edb01c 100644 --- a/lib/asn1/check-der.c +++ b/lib/asn1/check-der.c @@ -1126,25 +1126,25 @@ check_random(void) memset(input, 0, r->inputsize); ret = r->decoder(input, r->inputsize, type, &size); - if (ret) + if (!ret) r->release(type); /* try all one first */ memset(input, 0xff, r->inputsize); ret = r->decoder(input, r->inputsize, type, &size); - if (ret) + if (!ret) r->release(type); /* try 0x41 too */ memset(input, 0x41, r->inputsize); ret = r->decoder(input, r->inputsize, type, &size); - if (ret) + if (!ret) r->release(type); /* random */ asn1rand(input, r->inputsize); ret = r->decoder(input, r->inputsize, type, &size); - if (ret) + if (!ret) r->release(type); /* let make buffer smaller */ @@ -1154,7 +1154,7 @@ check_random(void) asn1rand(input, insize); ret = r->decoder(input, insize, type, &size); - if (ret == 0) + if (!ret) r->release(type); } while(insize > 0);