From 00dcd396edfc585316b8778e4b1121c6edf8390e Mon Sep 17 00:00:00 2001 From: Larry Ewing Date: Wed, 19 Sep 2001 19:34:19 +0000 Subject: free the temp dup'd string. 2001-09-19 Larry Ewing * src/libical/icalperiod.c (icalperiodtype_from_string): free the temp dup'd string. svn path=/trunk/; revision=12984 --- libical/src/libical/icalperiod.c | 6 +++++- libical/src/libical/icalvalue.c | 9 ++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) (limited to 'libical/src') diff --git a/libical/src/libical/icalperiod.c b/libical/src/libical/icalperiod.c index c74c157eff..6117df526f 100644 --- a/libical/src/libical/icalperiod.c +++ b/libical/src/libical/icalperiod.c @@ -96,11 +96,15 @@ struct icalperiodtype icalperiodtype_from_string (const char* str) } icalerrno = e; - + + icalmemory_free_buffer (s); return p; error: icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR); + + if (s) + icalmemory_free_buffer (s); return null_p; } diff --git a/libical/src/libical/icalvalue.c b/libical/src/libical/icalvalue.c index adcf6abbe5..7414c7c173 100644 --- a/libical/src/libical/icalvalue.c +++ b/libical/src/libical/icalvalue.c @@ -419,11 +419,14 @@ icalvalue_new_from_string_with_error(icalvalue_kind kind,const char* str,icalpro struct icaltimetype tt; struct icalperiodtype p; tt = icaltime_from_string(str); - p = icalperiodtype_from_string(str); if(!icaltime_is_null_time(tt)){ - value = icalvalue_new_datetime(tt); - } else if (!icalperiodtype_is_null_period(p)){ + value = icalvalue_new_datetime(tt); + break; + } + + p = icalperiodtype_from_string(str); + if (!icalperiodtype_is_null_period(p)){ value = icalvalue_new_period(p); } -- cgit v1.2.3