dmitry                                   Wed, 04 May 2011 07:53:22 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=310753

Log:
Fixed crash when passing invalid timestamp (negative integer on win32)

Changed paths:
    U   php/php-src/branches/PHP_5_2/ext/soap/php_encoding.c
    U   php/php-src/branches/PHP_5_3/ext/soap/php_encoding.c
    U   php/php-src/trunk/ext/soap/php_encoding.c

Modified: php/php-src/branches/PHP_5_2/ext/soap/php_encoding.c
===================================================================
--- php/php-src/branches/PHP_5_2/ext/soap/php_encoding.c        2011-05-04 
05:39:17 UTC (rev 310752)
+++ php/php-src/branches/PHP_5_2/ext/soap/php_encoding.c        2011-05-04 
07:53:22 UTC (rev 310753)
@@ -2872,6 +2872,9 @@
                timestamp = Z_LVAL_P(data);
                ta = php_localtime_r(&timestamp, &tmbuf);
                /*ta = php_gmtime_r(&timestamp, &tmbuf);*/
+               if (!ta) {
+                       soap_error1(E_ERROR, "Encoding: Invalid timestamp %ld", 
Z_LVAL_P(data));
+               }

                buf = (char *) emalloc(buf_len);
                while ((real_len = strftime(buf, buf_len, format, ta)) == 
buf_len || real_len == 0) {

Modified: php/php-src/branches/PHP_5_3/ext/soap/php_encoding.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/soap/php_encoding.c        2011-05-04 
05:39:17 UTC (rev 310752)
+++ php/php-src/branches/PHP_5_3/ext/soap/php_encoding.c        2011-05-04 
07:53:22 UTC (rev 310753)
@@ -2984,6 +2984,9 @@
                timestamp = Z_LVAL_P(data);
                ta = php_localtime_r(&timestamp, &tmbuf);
                /*ta = php_gmtime_r(&timestamp, &tmbuf);*/
+               if (!ta) {
+                       soap_error1(E_ERROR, "Encoding: Invalid timestamp %ld", 
Z_LVAL_P(data));
+               }

                buf = (char *) emalloc(buf_len);
                while ((real_len = strftime(buf, buf_len, format, ta)) == 
buf_len || real_len == 0) {

Modified: php/php-src/trunk/ext/soap/php_encoding.c
===================================================================
--- php/php-src/trunk/ext/soap/php_encoding.c   2011-05-04 05:39:17 UTC (rev 
310752)
+++ php/php-src/trunk/ext/soap/php_encoding.c   2011-05-04 07:53:22 UTC (rev 
310753)
@@ -2962,6 +2962,9 @@
                timestamp = Z_LVAL_P(data);
                ta = php_localtime_r(&timestamp, &tmbuf);
                /*ta = php_gmtime_r(&timestamp, &tmbuf);*/
+               if (!ta) {
+                       soap_error1(E_ERROR, "Encoding: Invalid timestamp %ld", 
Z_LVAL_P(data));
+               }

                buf = (char *) emalloc(buf_len);
                while ((real_len = strftime(buf, buf_len, format, ta)) == 
buf_len || real_len == 0) {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to