Edit report at https://bugs.php.net/bug.php?id=42196&edit=1

 ID:                 42196
 Updated by:         yohg...@php.net
 Reported by:        joungkyun at gmail dot com
 Summary:            unserialize artichecture problem
-Status:             Open
+Status:             Closed
 Type:               Feature/Change Request
-Package:            Feature/Change Request
+Package:            *General Issues
 Operating System:   Linux
 PHP Version:        5CVS-2007-08-03 (CVS)
-Assigned To:        
+Assigned To:        yohgaki
 Block user comment: N
 Private report:     N

 New Comment:

Already implemented at least 5.4


Previous Comments:
------------------------------------------------------------------------
[2007-08-04 16:42:10] joungkyun at gmail dot com

I thinks that php has auto casting type. So, on 32bit systems php get 64bit 
interger, first convert casting type to double.

sorry for my pool english.

------------------------------------------------------------------------
[2007-08-04 14:08:04] j...@php.net

First of all, exactly why do you pass data like this between machines?
Secondly: OF course you can't pass huge integers to 32bit system. So 
this is expected behaviour. What do you suggest happens in this case?

Try this on 32bit system: 

echo (int) 4294967297;


------------------------------------------------------------------------
[2007-08-03 09:51:46] joungkyun at gmail dot com

Description:
------------
There is serialized data that made with 64bit integer on 64 bit system.

On 32bit machine, if unserialize this data, you have result of integer overflow.


Reproduce code:
---------------
On, 64bit system

echo serialize (4294967296 + 1);

=> result : "i:4294967297;"

On, 32bit system

echo unserilaize ("i:4294967297;");

=> result : 1

Expected result:
----------------
On, 32bit system

echo unserilaize ("i:4294967297;");

=> result : 4294967297

Actual result:
--------------
On, 32bit system

echo unserilaize ("i:4294967297;");

=> result : 1


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=42196&edit=1

Reply via email to