]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
calendarspec: free memory when parsing fails (#4890)
authorDoug Christman <douglaschristman@gmail.com>
Wed, 14 Dec 2016 18:21:27 +0000 (13:21 -0500)
committerLennart Poettering <lennart@poettering.net>
Wed, 14 Dec 2016 18:21:27 +0000 (19:21 +0100)
This prevents memory leaks on strings like `*~*-*`.

Fixes #4887

src/basic/calendarspec.c

index 514587d23728f4d3a5f5f0d630110679faaa16cc..adf79eb5339284a0fb88b2d76fb34b62d83d9e26 100644 (file)
@@ -688,8 +688,11 @@ static int parse_date(const char **p, CalendarSpec *c) {
                 c->month = first;
                 c->day = second;
                 return 0;
-        } else if (c->end_of_month)
+        } else if (c->end_of_month) {
+                free_chain(first);
+                free_chain(second);
                 return -EINVAL;
+        }
 
         if (*t == '~')
                 c->end_of_month = true;