]> granicus.if.org Git - mutt/commitdiff
Fix memory leak on error in eat_regexp() and eat_date().
authorKevin McCarthy <kevin@8t8.us>
Tue, 30 Oct 2018 15:55:52 +0000 (08:55 -0700)
committerKevin McCarthy <kevin@8t8.us>
Tue, 30 Oct 2018 22:32:26 +0000 (15:32 -0700)
pattern.c

index f72d648d353ddb6341371d8fdd08360518cea8ec..890cfb902d506847838a20684f488fc5e9c5331e 100644 (file)
--- a/pattern.c
+++ b/pattern.c
@@ -266,11 +266,13 @@ static int eat_regexp (pattern_t *pat, BUFFER *s, BUFFER *err)
       !buf.data)
   {
     snprintf (err->data, err->dsize, _("Error in expression: %s"), pexpr);
+    FREE (&buf.data);
     return (-1);
   }
   if (!*buf.data)
   {
     snprintf (err->data, err->dsize, "%s", _("Empty expression"));
+    FREE (&buf.data);
     return (-1);
   }
 
@@ -585,11 +587,13 @@ static int eat_date (pattern_t *pat, BUFFER *s, BUFFER *err)
   if (mutt_extract_token (&buffer, s, MUTT_TOKEN_COMMENT | MUTT_TOKEN_PATTERN) != 0
       || !buffer.data)
   {
+    FREE (&buffer.data);
     snprintf (err->data, err->dsize, _("Error in expression: %s"), pexpr);
     return (-1);
   }
   if (!*buffer.data)
   {
+    FREE (&buffer.data);
     snprintf (err->data, err->dsize, "%s", _("Empty expression"));
     return (-1);
   }