diff --git a/src/mtime_iso8601.rl b/src/mtime_iso8601.rl index 12d3d2695c0ff7e7592342141037017aaa887f47..618956a57a996cb8df5b22f0cabe601aba4b9a46 100644 --- a/src/mtime_iso8601.rl +++ b/src/mtime_iso8601.rl @@ -110,14 +110,15 @@ date_machine( char *str, ISO8601_STATUS* stat, struct internal_datetime* dtObj, _year[0] = '-'; char *end; - dtObj->year = strtol(_year,&end, 10); - + dtObj->year = strtol(_year, &end, 10); + //TODO on LUIS: Should we have similar range checks on duration long strings now that we support arbitrariry strigs like PT1000202S? /* Year might be too large. */ - if ((errno == ERANGE) || (dtObj->year > YEAR_UPPER_BOUND) || (dtObj->year < YEAR_LOWER_BOUND)) - { - RAISE_YEAR_OUT_OF_BOUND_EXCEPTION = true; - } + if (end == _year) + if ((errno == ERANGE) || (dtObj->year > YEAR_UPPER_BOUND) || (dtObj->year < YEAR_LOWER_BOUND)) + { + RAISE_YEAR_OUT_OF_BOUND_EXCEPTION = true; + } } action year_month_copy