On Mon, Apr 9, 2012 at 4:36 AM, Nikita Popov <[email protected]> wrote:
> Commit: 7ae93a2c4c8a51cc2aec9977ce3c83c100e382a0
> Author: Nikita Popov <[email protected]> Sun, 8 Apr 2012 22:36:50 +0200
> Parents: f7d407678570f8e4063b70bd30f3fc19c10442ea
> Branches: PHP-5.4 master
>
> Link:
> http://git.php.net/?p=php-src.git;a=commitdiff;h=7ae93a2c4c8a51cc2aec9977ce3c83c100e382a0
>
> Log:
> Fix bug #61660: bin2hex(hex2bin($data)) != $data
>
> If the input data has an odd length a warning is thrown and false is returned.
>
> Bugs:
> https://bugs.php.net/61660
>
> Changed paths:
> M NEWS
> M ext/standard/string.c
> A ext/standard/tests/strings/bug61660.phpt
>
>
> Diff:
> diff --git a/NEWS b/NEWS
> index 7b80084..42f7cd9 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -9,6 +9,7 @@ PHP
> NEWS
> . "Connection: close" instead of "Connection: closed" (Gustavo)
>
> - Core:
> + . Fixed bug #61660 (bin2hex(hex2bin($data)) != $data). (Nikita Popov)
> . Fixed bug #61650 (ini parser crashes when using ${xxxx} ini variables
> (without apache2)). (Laruence)
> . Fixed bug #61605 (header_remove() does not remove all headers). (Laruence)
> diff --git a/ext/standard/string.c b/ext/standard/string.c
> index 0aade78..5c33232 100644
> --- a/ext/standard/string.c
> +++ b/ext/standard/string.c
> @@ -266,6 +266,11 @@ PHP_FUNCTION(hex2bin)
> return;
> }
>
> + if (datalen % 2 != 0) {
Hi:
I prefer to use datalen & 1, but up to you :)
thanks
> + php_error_docref(NULL TSRMLS_CC, E_WARNING, "Hexadecimal
> input string must have an even length");
> + RETURN_FALSE;
> + }
> +
> result = php_hex2bin((unsigned char *)data, datalen, &newlen);
>
> if (!result) {
> diff --git a/ext/standard/tests/strings/bug61660.phpt
> b/ext/standard/tests/strings/bug61660.phpt
> new file mode 100644
> index 0000000..010ea47
> --- /dev/null
> +++ b/ext/standard/tests/strings/bug61660.phpt
> @@ -0,0 +1,11 @@
> +--TEST--
> +Bug #61660: bin2hex(hex2bin($data)) != $data
> +--FILE--
> +<?php
> +
> +var_dump(hex2bin('123'));
> +
> +?>
> +--EXPECTF--
> +Warning: hex2bin(): Hexadecimal input string must have an even length in %s
> on line %d
> +bool(false)
>
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
--
Laruence Xinchen Hui
http://www.laruence.com/
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php