summaryrefslogtreecommitdiff
path: root/ext/standard/datetime.c
diff options
context:
space:
mode:
authorHartmut Holzgraefe <hholzgra@php.net>2000-08-01 11:16:20 +0000
committerHartmut Holzgraefe <hholzgra@php.net>2000-08-01 11:16:20 +0000
commitf194a3a25d5293b8b21d54b2259c4b33cd7cce4a (patch)
tree8316380f92e5d35d84d5b6b357cb372085aeddee /ext/standard/datetime.c
parentab13d02d5320edc7906c212dd50f16ea2833f5fc (diff)
downloadphp-git-f194a3a25d5293b8b21d54b2259c4b33cd7cce4a.tar.gz
protect datetime() against all zero inputs ...
Diffstat (limited to 'ext/standard/datetime.c')
-rw-r--r--ext/standard/datetime.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/ext/standard/datetime.c b/ext/standard/datetime.c
index 2c4622ac0b..61416c0dd6 100644
--- a/ext/standard/datetime.c
+++ b/ext/standard/datetime.c
@@ -120,6 +120,17 @@ void php_mktime(INTERNAL_FUNCTION_PARAMETERS, int gm)
ta->tm_isdst = is_dst = (*arguments[6])->value.lval;
/* fall-through */
case 6:
+ /* special case:
+ a zero in year, month and day is considered illegal
+ as it would be interpreted as 30.11.1999 otherwise
+ */
+ if ( ( (*arguments[5])->value.lval==0)
+ &&((*arguments[4])->value.lval==0)
+ &&((*arguments[3])->value.lval==0)
+ ) {
+ RETURN_LONG(-1);
+ }
+
/*
** Accept parameter in range 0..1000 interpreted as 1900..2900
** (if 100 is given, it means year 2000)