cvs: php-src /ext/standard pack.c /ext/standard/tests/strings bug38770.phpt
| From: | Ilia Alshanetsky | Date: | Tue, 12 May 2009 12:37:52 +0000 |
| Subject: | cvs: php-src /ext/standard pack.c /ext/standard/tests/strings bug38770.phpt | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-57729@lists.php.net to get a copy of this message | ||
iliaa Tue May 12 12:37:52 2009 UTC
Modified files:
/php-src/ext/standard/tests/strings bug38770.phpt
/php-src/ext/standard pack.c
Log:
MFB: Fixed bug #47564 (unpacking unsigned long 32bit bit endian returns
wrong result)
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/bug38770.phpt?r1=1.3&r2=1.4&diff_format=u
Index: php-src/ext/standard/tests/strings/bug38770.phpt
diff -u php-src/ext/standard/tests/strings/bug38770.phpt:1.3
php-src/ext/standard/tests/strings/bug38770.phpt:1.4
--- php-src/ext/standard/tests/strings/bug38770.phpt:1.3 Tue May 27 10:50:45 2008
+++ php-src/ext/standard/tests/strings/bug38770.phpt Tue May 12 12:37:52 2009
@@ -12,7 +12,7 @@
--EXPECT--
Array
(
- [1] => -30000
+ [1] => 4294937296
)
Array
(
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/pack.c?r1=1.73&r2=1.74&diff_format=u
Index: php-src/ext/standard/pack.c
diff -u php-src/ext/standard/pack.c:1.73 php-src/ext/standard/pack.c:1.74
--- php-src/ext/standard/pack.c:1.73 Tue Mar 10 23:39:40 2009
+++ php-src/ext/standard/pack.c Tue May 12 12:37:52 2009
@@ -15,7 +15,7 @@
| Author: Chris Schneider <cschneid@relog.ch> |
+----------------------------------------------------------------------+
*/
-/* $Id: pack.c,v 1.73 2009/03/10 23:39:40 helly Exp $ */
+/* $Id: pack.c,v 1.74 2009/05/12 12:37:52 iliaa Exp $ */
#include "php.h"
@@ -777,6 +777,13 @@
}
v |= php_unpack(&input[inputpos], 4, issigned, map);
+ if (sizeof(long) > 4) {
+ if (type == 'l') {
+ v = (signed int) v;
+ } else {
+ v = (unsigned int) v;
+ }
+ }
add_rt_assoc_long(return_value, n, v);
break;
}