]> diplodocus.org Git - nmh/commitdiff
If format_datetime() returns null, store a copy of node->value on c->c_text
authorDavid Levine <levinedl@acm.org>
Wed, 18 Nov 2015 23:02:43 +0000 (18:02 -0500)
committerDavid Levine <levinedl@acm.org>
Wed, 18 Nov 2015 23:02:43 +0000 (18:02 -0500)
to prevent a double free().

uip/mhical.c

index eb26c388412ccfeb6752416fe191d6fac9792b3c..8ab305aaee7be8cc06ce4ed2059fb6dd76ced23d 100644 (file)
@@ -642,7 +642,7 @@ display (FILE *file, contentline *clines, char *nfs) {
                 } else if (! strcasecmp ("DTSTART", node->name)) {
                     /* Got it:  DTSTART outside of a VTIMEZONE section. */
                     char *datetime = format_datetime (timezones, node);
-                    c->c_text = datetime ? datetime : node->value;
+                    c->c_text = datetime ? datetime : strdup(node->value);
                 }
             }
         }
@@ -651,7 +651,7 @@ display (FILE *file, contentline *clines, char *nfs) {
     if ((c = fmt_findcomp ("dtend"))) {
         if ((node = find_contentline (clines, "DTEND", 0))  &&  node->value) {
             char *datetime = format_datetime (timezones, node);
-            c->c_text = datetime ? datetime : node->value;
+            c->c_text = datetime ? datetime : strdup(node->value);
         }
     }