From ed409e2b754b839db77c7fc04cceb3eecea2ce6d Mon Sep 17 00:00:00 2001
From: Lev Walkin <vlm@lionet.info>
Date: Tue, 26 Sep 2017 18:07:40 -0700
Subject: [PATCH] remove memleaks

---
 libasn1parser/asn1p_y.c | 3 +++
 libasn1parser/asn1p_y.y | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index 3c91a61e..d62b43aa 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -4314,6 +4314,7 @@ yyreduce:
     {
 		(yyval.a_value) = asn1p_value_fromtype((yyvsp[(2) - (2)].a_expr));
 		checkmem((yyval.a_value));
+		asn1p_expr_free((yyvsp[(2) - (2)].a_expr));
     }
     break;
 
@@ -4322,6 +4323,7 @@ yyreduce:
     {
 		(yyval.a_value) = asn1p_value_fromtype((yyvsp[(1) - (1)].a_expr));
 		checkmem((yyval.a_value));
+		asn1p_expr_free((yyvsp[(1) - (1)].a_expr));
     }
     break;
 
@@ -4939,6 +4941,7 @@ yyreduce:
     {
 		(yyval.a_ref) = asn1p_ref_new(yylineno, currentModule);
 		asn1p_ref_add_component((yyval.a_ref), (yyvsp[(1) - (1)].tv_str), RLT_lowercase);
+		free((yyvsp[(1) - (1)].tv_str));
     }
     break;
 
diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y
index 466218a8..b38a5434 100644
--- a/libasn1parser/asn1p_y.y
+++ b/libasn1parser/asn1p_y.y
@@ -1986,11 +1986,13 @@ ContainedSubtype:
     TOK_INCLUDES Type {
 		$$ = asn1p_value_fromtype($2);
 		checkmem($$);
+		asn1p_expr_free($2);
     }
     /* Can't put Type here because of conflicts. Simplified subset */
     | DefinedUntaggedType {
 		$$ = asn1p_value_fromtype($1);
 		checkmem($$);
+		asn1p_expr_free($1);
     }
 	;
 
@@ -2475,6 +2477,7 @@ IdentifierAsReference:
     Identifier {
 		$$ = asn1p_ref_new(yylineno, currentModule);
 		asn1p_ref_add_component($$, $1, RLT_lowercase);
+		free($1);
     };
 
 IdentifierAsValue:
-- 
2.26.2