summaryrefslogtreecommitdiffstats
path: root/crypto/asn1
diff options
context:
space:
mode:
authorKurt Roeckx <kurt@roeckx.be>2016-05-23 23:09:33 +0200
committerKurt Roeckx <kurt@roeckx.be>2016-05-24 21:33:02 +0200
commit73b61c7e14115ae98c174bfdd7c7733d6cc7e909 (patch)
tree2a8860980e4ff132e9ffd249b4692c9903c617d7 /crypto/asn1
parent04473165815e93c8453f6c0b55a5dd0b93f668fa (diff)
Avoid creating an illegal pointer
Found by tis-interpreter Reviewed-by: Richard Levitte <levitte@openssl.org> GH: #1115
Diffstat (limited to 'crypto/asn1')
-rw-r--r--crypto/asn1/tasn_fre.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/crypto/asn1/tasn_fre.c b/crypto/asn1/tasn_fre.c
index 147168090a..9b623d907c 100644
--- a/crypto/asn1/tasn_fre.c
+++ b/crypto/asn1/tasn_fre.c
@@ -102,9 +102,11 @@ static void asn1_item_embed_free(ASN1_VALUE **pval, const ASN1_ITEM *it,
* field and we wont be able to determine the type of the field it
* defines. So free up in reverse order.
*/
- tt = it->templates + it->tcount - 1;
- for (i = 0; i < it->tcount; tt--, i++) {
+ tt = it->templates + it->tcount;
+ for (i = 0; i < it->tcount; i++) {
ASN1_VALUE **pseqval;
+
+ tt--;
seqtt = asn1_do_adb(pval, tt, 0);
if (!seqtt)
continue;