diff options
| author | Hartmut Holzgraefe <hholzgra@php.net> | 2000-08-01 11:16:20 +0000 |
|---|---|---|
| committer | Hartmut Holzgraefe <hholzgra@php.net> | 2000-08-01 11:16:20 +0000 |
| commit | f194a3a25d5293b8b21d54b2259c4b33cd7cce4a (patch) | |
| tree | 8316380f92e5d35d84d5b6b357cb372085aeddee /ext | |
| parent | ab13d02d5320edc7906c212dd50f16ea2833f5fc (diff) | |
| download | php-git-f194a3a25d5293b8b21d54b2259c4b33cd7cce4a.tar.gz | |
protect datetime() against all zero inputs ...
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/standard/datetime.c | 11 |
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) |
