On 02/15/2011 03:31 PM, Pierre Joye wrote:
On Tue, Feb 15, 2011 at 12:54 PM, Dmitry Stogov<dmi...@zend.com>  wrote:

I don't know all the logic but it looks very strange

2147483648 == 0x80000000 != 0x7fffffff == 2147483647

so byte_count_signed may be 0x80000000 == -1

negative value are checked before. Btw, byte_count_signed  is a 64bit
signed integer, for this reason :)

Lets byte_count_signed = 0x0000000080000000

it's not less than zero and not greater than 2147483648.
So the following condition is false.

if (byte_count_signed < 0 || (byte_count_signed > 2147483648)) {

Then you convert it to size_t.

byte_count = (size_t)byte_count_signed;

In case size_t is defined as signed int32 you will get byte_count = -1.

Thanks. Dmitry

Cheers,


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

Reply via email to