aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/name-value.c6
-rw-r--r--common/recsel.c8
2 files changed, 12 insertions, 2 deletions
diff --git a/common/name-value.c b/common/name-value.c
index f663ecfe1..0bd205b7d 100644
--- a/common/name-value.c
+++ b/common/name-value.c
@@ -777,9 +777,13 @@ do_nvc_parse (nvc_t *result, int *errlinep, estream_t stream,
/* Add the final entry. */
if (raw_value)
- err = _nvc_add (*result, name, NULL, raw_value, 1);
+ {
+ err = _nvc_add (*result, name, NULL, raw_value, 1);
+ name = NULL;
+ }
leave:
+ xfree (name);
gpgrt_free (buf);
if (err)
{
diff --git a/common/recsel.c b/common/recsel.c
index b2b302b75..95c104fdd 100644
--- a/common/recsel.c
+++ b/common/recsel.c
@@ -249,7 +249,13 @@ recsel_parse_expr (recsel_expr_t *selector, const char *expression)
se = xtrymalloc (sizeof *se + strlen (expr));
if (!se)
- return my_error_from_syserror ();
+ {
+ gpg_error_t err = my_error_from_syserror ();
+
+ recsel_release (se_head);
+ xfree (expr_buffer);
+ return err;
+ }
strcpy (se->name, expr);
se->next = NULL;
se->not = 0;