diff options
Diffstat (limited to 'libical/src/libical/icalrecur.c')
-rw-r--r-- | libical/src/libical/icalrecur.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/libical/src/libical/icalrecur.c b/libical/src/libical/icalrecur.c index cfd8e2b33b..db3f7aefff 100644 --- a/libical/src/libical/icalrecur.c +++ b/libical/src/libical/icalrecur.c @@ -4,7 +4,6 @@ CREATOR: eric 16 May 2000 $Id$ - $Locker$ @@ -355,6 +354,12 @@ struct icalrecurrencetype icalrecurrencetype_from_string(const char* str) char *name, *value; icalrecur_clause_name_and_value(&parser,&name,&value); + if(name == 0){ + icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR); + icalrecurrencetype_clear(&parser.rt); + return parser.rt; + } + if (strcmp(name,"FREQ") == 0){ parser.rt.freq = icalrecur_string_to_recurrence(value); } else if (strcmp(name,"COUNT") == 0){ @@ -392,7 +397,9 @@ struct icalrecurrencetype icalrecurrencetype_from_string(const char* str) icalrecur_add_byrules(&parser,parser.rt.by_set_pos, ICAL_BY_SETPOS_SIZE,value); } else { - /* error */ + icalerror_set_errno(ICAL_MALFORMEDDATA_ERROR); + icalrecurrencetype_clear(&parser.rt); + return parser.rt; } } |