com php-src: Ensure we have enough input data before parsing date: ext/xmlrpc/libxmlrpc/xmlrpc.c
| From: | Remi Collet | Date: | Tue, 28 Oct 2014 07:48:22 +0000 |
| Subject: | com php-src: Ensure we have enough input data before parsing date: ext/xmlrpc/libxmlrpc/xmlrpc.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-82727@lists.php.net to get a copy of this message | ||
Commit: 13a218d3285f78812bb8a1d2214b9d6e166924b8
Author: Remi Collet <remi@php.net> Tue, 28 Oct 2014 08:48:22 +0100
Parents: deadeeae1d08877021eb2796aa6790baa74361ed
Branches: PHP-5.5 PHP-5.6 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=13a218d3285f78812bb8a1d2214b9d6e166924b8
Log:
Ensure we have enough input data before parsing date
This check have be removed in
http://git.php.net/?p=php-src.git;a=commit;h=ba2f87b50667f147c198abd31fc31eb09522f3d7
But the parser really need 17 char.
And the string need to be nul terminated for this check
So avoid reading random byte from memory.
Changed paths:
M ext/xmlrpc/libxmlrpc/xmlrpc.c
Diff:
diff --git a/ext/xmlrpc/libxmlrpc/xmlrpc.c b/ext/xmlrpc/libxmlrpc/xmlrpc.c
index b766a54..f184cf4 100644
--- a/ext/xmlrpc/libxmlrpc/xmlrpc.c
+++ b/ext/xmlrpc/libxmlrpc/xmlrpc.c
@@ -201,9 +201,13 @@ static int date_from_ISO8601 (const char *text, time_t * value) {
}
p++;
}
- text = buf;
+ *p2 = 0;
+ text = buf;
}
+ if (strlen(text)<17) {
+ return -1;
+ }
tm.tm_isdst = -1;