diff options
author | Bi-Ruei, Chiu <biruei.chiu@gmail.com> | 2017-05-04 21:45:05 +0800 |
---|---|---|
committer | Bi-Ruei, Chiu <biruei.chiu@gmail.com> | 2017-05-05 15:03:32 +0800 |
commit | 3dcf05bbb066f6c553beed1aee51e896532599e4 (patch) | |
tree | 1ff2f8ca115d5e6c42b97715bf7f27015be08823 /libasn1fix | |
parent | 0eca8c322749a501f1a10f47f58f99a793bbe8b8 (diff) |
Fix some memory leakage found
Diffstat (limited to 'libasn1fix')
-rw-r--r-- | libasn1fix/asn1fix_constr.c | 2 | ||||
-rw-r--r-- | libasn1fix/asn1fix_cws.c | 4 | ||||
-rw-r--r-- | libasn1fix/asn1fix_misc.c | 2 |
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 { \ |