[PHP-BUG] Bug #63510 [NEW]: Integer overflow with chr

2012-11-14 Thread idokan at gmail dot com
From: idokan at gmail dot com
Operating system: 
PHP version:  5.4.8
Package:  Strings related
Bug Type: Bug
Bug description:Integer overflow with chr

Description:

The chr function translate a single Byte length integer into it's ASCII
value.
When providing a number bigger then 255, it returns the first byte instead
of reporting an error about being out of range.

Test script:
---
echo chr(1000) . ' ' . ord(chr(1000)) . "\n";

Expected result:

chr must check the numeric boundaries and report on on an error when they
are out of the range.

Actual result:
--
returns the first byte out of the result, making it appear like an integer
overflow that the carry flag exception was captured.

-- 
Edit bug report at https://bugs.php.net/bug.php?id=63510&edit=1
-- 
Try a snapshot (PHP 5.4):   
https://bugs.php.net/fix.php?id=63510&r=trysnapshot54
Try a snapshot (PHP 5.3):   
https://bugs.php.net/fix.php?id=63510&r=trysnapshot53
Try a snapshot (trunk): 
https://bugs.php.net/fix.php?id=63510&r=trysnapshottrunk
Fixed in SVN:   https://bugs.php.net/fix.php?id=63510&r=fixed
Fixed in release:   https://bugs.php.net/fix.php?id=63510&r=alreadyfixed
Need backtrace: https://bugs.php.net/fix.php?id=63510&r=needtrace
Need Reproduce Script:  https://bugs.php.net/fix.php?id=63510&r=needscript
Try newer version:  https://bugs.php.net/fix.php?id=63510&r=oldversion
Not developer issue:https://bugs.php.net/fix.php?id=63510&r=support
Expected behavior:  https://bugs.php.net/fix.php?id=63510&r=notwrong
Not enough info:
https://bugs.php.net/fix.php?id=63510&r=notenoughinfo
Submitted twice:
https://bugs.php.net/fix.php?id=63510&r=submittedtwice
register_globals:   https://bugs.php.net/fix.php?id=63510&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=63510&r=php4
Daylight Savings:   https://bugs.php.net/fix.php?id=63510&r=dst
IIS Stability:  https://bugs.php.net/fix.php?id=63510&r=isapi
Install GNU Sed:https://bugs.php.net/fix.php?id=63510&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=63510&r=float
No Zend Extensions: https://bugs.php.net/fix.php?id=63510&r=nozend
MySQL Configuration Error:  https://bugs.php.net/fix.php?id=63510&r=mysqlcfg



Bug #63510 [Com]: Integer overflow with chr

2012-11-14 Thread idokan at gmail dot com
Edit report at https://bugs.php.net/bug.php?id=63510&edit=1

 ID: 63510
 Comment by: idokan at gmail dot com
 Reported by:idokan at gmail dot com
 Summary:Integer overflow with chr
 Status: Open
 Type:   Bug
 Package:Strings related
 PHP Version:5.4.8
 Block user comment: N
 Private report: N

 New Comment:

Huh ?!

ASCII is 0..127 chars, if they are out of range and also from extended ASCII 
(128..255), then you must report an error like with normal implementation such 
as Ruby, Python, Pascal, Perl (with strict bytes) etc...
Not to $value & 255 it.


Previous Comments:

[2012-11-14 15:28:28] larue...@php.net

I think this check could be done in user script self.

the document said:
chr convert *ascii* code .. so...


[2012-11-14 09:36:12] idokan at gmail dot com

Description:

The chr function translate a single Byte length integer into it's ASCII value.
When providing a number bigger then 255, it returns the first byte instead of 
reporting an error about being out of range.

Test script:
---
echo chr(1000) . ' ' . ord(chr(1000)) . "\n";

Expected result:

chr must check the numeric boundaries and report on on an error when they are 
out of the range.

Actual result:
--
returns the first byte out of the result, making it appear like an integer 
overflow that the carry flag exception was captured.






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