From 0312ef782e11700862f8f1e4d601706cdb8e0874 Mon Sep 17 00:00:00 2001 From: piaip Date: Tue, 11 Mar 2008 13:43:07 +0000 Subject: - fix crash: should check every return value of strtok_r. git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3992 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/calendar.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/mbbsd/calendar.c b/mbbsd/calendar.c index 2205d71b..b87c774a 100644 --- a/mbbsd/calendar.c +++ b/mbbsd/calendar.c @@ -40,11 +40,9 @@ int ParseDate(const char *date, int *year, int *month, int *day) char *strtok_pos; strlcpy(buf, date, sizeof(buf)); - y = strtok_r(buf, "/", &strtok_pos); - m = strtok_r(NULL, "/", &strtok_pos); - d = strtok_r(NULL, "", &strtok_pos); - if (!y || !m || !d) - return 1; + y = strtok_r(buf, "/", &strtok_pos); if (!y) return 1; + m = strtok_r(NULL, "/", &strtok_pos);if (!m) return 1; + d = strtok_r(NULL, "", &strtok_pos); if (!d) return 1; *year = atoi(y); *month = atoi(m); -- cgit v1.2.3