From 47edd8a303d27afe9ac8f84d0e923c713d294670 Mon Sep 17 00:00:00 2001 From: Antony Dovgal Date: Wed, 31 May 2006 12:06:36 +0000 Subject: [PATCH] MFH: fix #37595 (mcrypt_generic calculates data length in wrong way) --- NEWS | 2 ++ ext/mcrypt/mcrypt.c | 2 +- ext/mcrypt/tests/bug37595.phpt | Bin 0 -> 988 bytes 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 ext/mcrypt/tests/bug37595.phpt diff --git a/NEWS b/NEWS index db78febd827..a9c2e616ec2 100644 --- a/NEWS +++ b/NEWS @@ -55,6 +55,8 @@ PHP NEWS - Fixed bug #37616 (DATE_RFC822 does not product RFC 822 dates). (Hannes Magnusson, Derick) - Fixed bug #37614 (Class name lowercased in error message). (Johannes) +- Fixed bug #37595 (mcrypt_generic calculates data length in wrong way). + (Tony) - Fixed bug #37587 (var without attribute causes segfault). (Marcus) - Fixed bug #37586 (Bumped minimum PCRE version to 6.6, needed for recursion limit support). (Ilia) diff --git a/ext/mcrypt/mcrypt.c b/ext/mcrypt/mcrypt.c index 878c883611d..a76ae2ee58a 100644 --- a/ext/mcrypt/mcrypt.c +++ b/ext/mcrypt/mcrypt.c @@ -496,7 +496,7 @@ PHP_FUNCTION(mcrypt_generic) /* Check blocksize */ if (mcrypt_enc_is_block_mode(pm->td) == 1) { /* It's a block algorithm */ block_size = mcrypt_enc_get_block_size(pm->td); - data_size = (((Z_STRLEN_PP(data) - 1) / block_size) + 1) * block_size; + data_size = ((Z_STRLEN_PP(data) / block_size) + 1) * block_size; data_s = emalloc(data_size + 1); memset(data_s, 0, data_size); memcpy(data_s, Z_STRVAL_PP(data), Z_STRLEN_PP(data)); diff --git a/ext/mcrypt/tests/bug37595.phpt b/ext/mcrypt/tests/bug37595.phpt new file mode 100644 index 0000000000000000000000000000000000000000..a74b8cfaa80aa2e98687d91be101e3492b948491 GIT binary patch literal 988 zcma)*?`xYt7{~k8`zsz?K!tO}Bqot8D{E?5p{1n_Y=eT_^rkX%%4yPu(f_^A8BG(L z7xRU3&yUad?)#j!z4RZKwoQJoWB4?jxSk84j;La2c>HhB@3W9)8^~gNvKHA6M6p-)E#( z{^eUtFe%yA>{Evh=#Y-6OUHCVr_`ek1|8}Qs57L_h&rx?UDz}?j2ZcpOU}Z?++kP= zy~=`rL<4+O5qzFQm`D@DGoop)1W>W8&Ula)T$mjnsA141bbEK{2aAgZhLDVi+Uhxcs|_NW(Fz#! zVBx8i{`AuCH)&mEk4jGVwL#Ay8p^ePg1M7br{1uvw)FTi1gS_Xv^Ao&&-hL^2+(?5 zgzragZcbCDNLWI&4l3d;>}0x4c9b?u2GM#|;8uApiJ!yk+KA$QEX2MNay*7G%S*0m zFiCirXf