From:             post at kira-bianca dot eu
Operating system: Linux
PHP version:      5.4.11
Package:          Scripting Engine problem
Bug Type:         Bug
Bug description:rawurlencode appends char in conj.w. base64_decode when url-len 
isn't div. by 3

Description:
------------
If I encode a URL with first the function base64_encode() and then with
rawurlencode() are appended in the URL may 1 or 2 characters "%3D".

If the length of the URL is divisible by 3, the result is okay.
If the division of the URL length by 3 a remainder of 1, to the url
"%3D%3D" attached
With a remainder of 2, "%3D" attached.

Test script:
---------------
$dom = "domain";
for ($i=0; $i<10; $dom.='x', $i++){
        $url = "$dom.ldk";
        $url_e = rawurlencode(base64_encode("$url"));
        printf("%20s (len div 3 = %1d); encoded:%32s; decoded:%s\n",
                $url,
                strlen($url)%3,
                $url_e,
                rawurldecode(base64_decode($url_e)));
}

Expected result:
----------------
          domain.ldk (len div 3 = 1); encoded:           
ZG9tYWluLmxkaw%3D%3D; decoded:domain.ldk\nÃÜ
         domainx.ldk (len div 3 = 2); encoded:             
ZG9tYWlueC5sZGs%3D; decoded:domainx.ldk7
        domainxx.ldk (len div 3 = 0); encoded:               
ZG9tYWlueHgubGRr; decoded:domainxx.ldk
       domainxxx.ldk (len div 3 = 1); encoded:       
ZG9tYWlueHh4Lmxkaw%3D%3D; decoded:domainxxx.ldk\nÃÜ
      domainxxxx.ldk (len div 3 = 2); encoded:         
ZG9tYWlueHh4eC5sZGs%3D; decoded:domainxxxx.ldk7
     domainxxxxx.ldk (len div 3 = 0); encoded:           
ZG9tYWlueHh4eHgubGRr; decoded:domainxxxxx.ldk
    domainxxxxxx.ldk (len div 3 = 1); encoded:   
ZG9tYWlueHh4eHh4Lmxkaw%3D%3D; decoded:domainxxxxxx.ldk\nÃÜ
   domainxxxxxxx.ldk (len div 3 = 2); encoded:     
ZG9tYWlueHh4eHh4eC5sZGs%3D; decoded:domainxxxxxxx.ldk7
  domainxxxxxxxx.ldk (len div 3 = 0); encoded:       
ZG9tYWlueHh4eHh4eHgubGRr; decoded:domainxxxxxxxx.ldk
 domainxxxxxxxxx.ldk (len div 3 = 1);
encoded:ZG9tYWlueHh4eHh4eHh4Lmxkaw%3D%3D; decoded:domainxxxxxxxxx.ldk\nÃÜ


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

Reply via email to