From: David Levine Date: Wed, 18 Nov 2015 23:02:43 +0000 (-0500) Subject: If format_datetime() returns null, store a copy of node->value on c->c_text X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/33ee48487aba4989607d930e341032005de02004?ds=sidebyside;hp=ba8b265a8211b2052b424dc9bd7ea391a8ded87a If format_datetime() returns null, store a copy of node->value on c->c_text to prevent a double free(). --- diff --git a/uip/mhical.c b/uip/mhical.c index eb26c388..8ab305aa 100644 --- a/uip/mhical.c +++ b/uip/mhical.c @@ -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); } }