You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by se...@apache.org on 2008/03/03 21:30:27 UTC
svn commit: r633263 - /webservices/axis2/trunk/c/util/src/date_time.c
Author: senaka
Date: Mon Mar 3 12:30:24 2008
New Revision: 633263
URL: http://svn.apache.org/viewvc?rev=633263&view=rev
Log:
Fixing JIRA Issue AXIS2C-1008
Modified:
webservices/axis2/trunk/c/util/src/date_time.c
Modified: webservices/axis2/trunk/c/util/src/date_time.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/date_time.c?rev=633263&r1=633262&r2=633263&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/src/date_time.c (original)
+++ webservices/axis2/trunk/c/util/src/date_time.c Mon Mar 3 12:30:24 2008
@@ -125,13 +125,70 @@
const axutil_env_t * env,
const axis2_char_t * date_time_str)
{
+ int year;
+ int mon;
+ int day;
+ int hour;
+ int min;
+ int sec;
+ int msec;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- sscanf(date_time_str, "%d-%d-%dT%d:%d:%d.%dZ", &date_time->year,
- &date_time->mon, &date_time->day, &date_time->hour, &date_time->min,
- &date_time->sec, &date_time->msec);
- date_time->year -= 1900;
- date_time->mon -= 1;
+ sscanf(date_time_str, "%d-%d-%dT%d:%d:%d.%dZ", &year,
+ &mon, &day, &hour, &min,
+ &sec, &msec);
+
+ if (year < 1900)
+ {
+ return AXIS2_FAILURE;
+ }
+ if (mon < 1 || mon > 12)
+ {
+ return AXIS2_FAILURE;
+ }
+ if (day < 1 || day > 31)
+ {
+ return AXIS2_FAILURE;
+ }
+ if (day == 31 && (mon == 2 || mon == 4 ||
+ mon == 6 || mon == 9 || mon == 11))
+ {
+ return AXIS2_FAILURE;
+ }
+ if (day == 30 && mon == 2)
+ {
+ return AXIS2_FAILURE;
+ }
+ if (day == 29 && mon == 2)
+ {
+ if (year % 4 != 0 || year % 400 == 0)
+ {
+ return AXIS2_FAILURE;
+ }
+ }
+ if (hour < 0 || hour > 23)
+ {
+ return AXIS2_FAILURE;
+ }
+ if (min < 0 || min > 59)
+ {
+ return AXIS2_FAILURE;
+ }
+ if (sec < 0 || sec > 59)
+ {
+ return AXIS2_FAILURE;
+ }
+ if (msec < 0 || msec > 999)
+ {
+ return AXIS2_FAILURE;
+ }
+ date_time->year = year - 1900;
+ date_time->mon = mon - 1;
+ date_time->day = day;
+ date_time->hour = hour;
+ date_time->min = min;
+ date_time->sec = sec;
+ date_time->msec = msec;
return AXIS2_SUCCESS;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org