aboutsummaryrefslogtreecommitdiffstats
path: root/libasn1fix
diff options
context:
space:
mode:
authorBi-Ruei, Chiu <biruei.chiu@gmail.com>2017-05-04 21:45:05 +0800
committerBi-Ruei, Chiu <biruei.chiu@gmail.com>2017-05-05 15:03:32 +0800
commit3dcf05bbb066f6c553beed1aee51e896532599e4 (patch)
tree1ff2f8ca115d5e6c42b97715bf7f27015be08823 /libasn1fix
parent0eca8c322749a501f1a10f47f58f99a793bbe8b8 (diff)
Fix some memory leakage found
Diffstat (limited to 'libasn1fix')
-rw-r--r--libasn1fix/asn1fix_constr.c2
-rw-r--r--libasn1fix/asn1fix_cws.c4
-rw-r--r--libasn1fix/asn1fix_misc.c2
3 files changed, 5 insertions, 3 deletions
diff --git a/libasn1fix/asn1fix_constr.c b/libasn1fix/asn1fix_constr.c
index e486a332..04063ce8 100644
--- a/libasn1fix/asn1fix_constr.c
+++ b/libasn1fix/asn1fix_constr.c
@@ -60,7 +60,7 @@ asn1f_pull_components_of(arg_t *arg) {
coft = asn1p_expr_clone(terminal, 1 /* Skip extensions */);
if(!coft) return -1; /* ENOMEM */
- if(0) {
+ if(1) {
asn1p_expr_free(memb); /* Don't need it anymore*/
} else {
/* Actual removal clashes with constraints... skip. */
diff --git a/libasn1fix/asn1fix_cws.c b/libasn1fix/asn1fix_cws.c
index aefb15cc..312a65b0 100644
--- a/libasn1fix/asn1fix_cws.c
+++ b/libasn1fix/asn1fix_cws.c
@@ -206,12 +206,14 @@ _asn1f_assign_cell_value(arg_t *arg, struct asn1p_ioc_row_s *row, struct asn1p_i
ref = asn1p_ref_new(arg->expr->_lineno);
asn1p_ref_add_component(ref, p, RLT_UNKNOWN);
assert(ref);
-
+
expr = asn1f_lookup_symbol(arg, arg->mod, arg->expr->rhs_pspecs, ref);
if(!expr) {
FATAL("Cannot find %s referenced by %s at line %d",
p, arg->expr->Identifier,
arg->expr->_lineno);
+ asn1p_ref_free(ref);
+ free(p);
return -1;
}
}
diff --git a/libasn1fix/asn1fix_misc.c b/libasn1fix/asn1fix_misc.c
index 23005b95..88e8d18a 100644
--- a/libasn1fix/asn1fix_misc.c
+++ b/libasn1fix/asn1fix_misc.c
@@ -26,7 +26,7 @@ asn1f_printable_value(asn1p_value_t *v) {
size_t tmp_len = (len); \
if(tmp_len >= managedptr_len) { \
free(managedptr); \
- managedptr = malloc(tmp_len + 1); \
+ managedptr = calloc(1, tmp_len + 1); \
if(managedptr) { \
managedptr_len = tmp_len; \
} else { \