aboutsummaryrefslogtreecommitdiffstats
path: root/libical/src/libical/icalrecur.c
diff options
context:
space:
mode:
Diffstat (limited to 'libical/src/libical/icalrecur.c')
-rw-r--r--libical/src/libical/icalrecur.c11
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;
}
}