File tree Expand file tree Collapse file tree 4 files changed +203
-0
lines changed Expand file tree Collapse file tree 4 files changed +203
-0
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,9 @@ PHP NEWS
1111- Curl:
1212 . Fixed bug GH-16723 (CURLMOPT_PUSHFUNCTION issues). (cmb)
1313
14+ - Hash:
15+ . Fixed GH-16711: Segfault in mhash(). (Girgias)
16+
1417- PDO:
1518 . Fixed memory leak of `setFetchMode()`. (SakiTakamachi)
1619
Original file line number Diff line number Diff line change @@ -1212,7 +1212,11 @@ PHP_FUNCTION(mhash)
12121212 struct mhash_bc_entry algorithm_lookup = mhash_to_hash [algorithm ];
12131213 if (algorithm_lookup .hash_name ) {
12141214 algo = zend_string_init (algorithm_lookup .hash_name , strlen (algorithm_lookup .hash_name ), 0 );
1215+ } else {
1216+ RETURN_FALSE ;
12151217 }
1218+ } else {
1219+ RETURN_FALSE ;
12161220 }
12171221
12181222 if (key ) {
Original file line number Diff line number Diff line change 1+ --TEST--
2+ GH-16711: Segmentation fault in mhash()
3+ --SKIPIF--
4+ <?php if (!function_exists ('mhash ' )) { die ('skip mhash compatibility layer not available ' ); } ?>
5+ --FILE--
6+ <?php
7+
8+ $ re = new ReflectionExtension ("hash " );
9+ var_dump ($ re ->getConstants ());
10+
11+ var_dump (mhash (133 , 1086849124 , 133 ));
12+ ?>
13+ --EXPECTF--
14+ array(40) {
15+ ["HASH_HMAC"]=>
16+ int(1)
17+ ["MHASH_CRC32"]=>
18+ int(0)
19+ ["MHASH_MD5"]=>
20+ int(1)
21+ ["MHASH_SHA1"]=>
22+ int(2)
23+ ["MHASH_HAVAL256"]=>
24+ int(3)
25+ ["MHASH_RIPEMD160"]=>
26+ int(5)
27+ ["MHASH_TIGER"]=>
28+ int(7)
29+ ["MHASH_GOST"]=>
30+ int(8)
31+ ["MHASH_CRC32B"]=>
32+ int(9)
33+ ["MHASH_HAVAL224"]=>
34+ int(10)
35+ ["MHASH_HAVAL192"]=>
36+ int(11)
37+ ["MHASH_HAVAL160"]=>
38+ int(12)
39+ ["MHASH_HAVAL128"]=>
40+ int(13)
41+ ["MHASH_TIGER128"]=>
42+ int(14)
43+ ["MHASH_TIGER160"]=>
44+ int(15)
45+ ["MHASH_MD4"]=>
46+ int(16)
47+ ["MHASH_SHA256"]=>
48+ int(17)
49+ ["MHASH_ADLER32"]=>
50+ int(18)
51+ ["MHASH_SHA224"]=>
52+ int(19)
53+ ["MHASH_SHA512"]=>
54+ int(20)
55+ ["MHASH_SHA384"]=>
56+ int(21)
57+ ["MHASH_WHIRLPOOL"]=>
58+ int(22)
59+ ["MHASH_RIPEMD128"]=>
60+ int(23)
61+ ["MHASH_RIPEMD256"]=>
62+ int(24)
63+ ["MHASH_RIPEMD320"]=>
64+ int(25)
65+ ["MHASH_SNEFRU256"]=>
66+ int(27)
67+ ["MHASH_MD2"]=>
68+ int(28)
69+ ["MHASH_FNV132"]=>
70+ int(29)
71+ ["MHASH_FNV1A32"]=>
72+ int(30)
73+ ["MHASH_FNV164"]=>
74+ int(31)
75+ ["MHASH_FNV1A64"]=>
76+ int(32)
77+ ["MHASH_JOAAT"]=>
78+ int(33)
79+ ["MHASH_CRC32C"]=>
80+ int(34)
81+ ["MHASH_MURMUR3A"]=>
82+ int(35)
83+ ["MHASH_MURMUR3C"]=>
84+ int(36)
85+ ["MHASH_MURMUR3F"]=>
86+ int(37)
87+ ["MHASH_XXH32"]=>
88+ int(38)
89+ ["MHASH_XXH64"]=>
90+ int(39)
91+ ["MHASH_XXH3"]=>
92+ int(40)
93+ ["MHASH_XXH128"]=>
94+ int(41)
95+ }
96+
97+ Deprecated: Function mhash() is deprecated in %s on line %d
98+ bool(false)
Original file line number Diff line number Diff line change 1+ --TEST--
2+ GH-16711: Segmentation fault in mhash()
3+ --SKIPIF--
4+ <?php if (!function_exists ('mhash ' )) { die ('skip mhash compatibility layer not available ' ); } ?>
5+ --FILE--
6+ <?php
7+
8+ $ re = new ReflectionExtension ("hash " );
9+ var_dump ($ re ->getConstants ());
10+
11+ var_dump (mhash (4 , 1086849124 , 133 ));
12+ ?>
13+ --EXPECTF--
14+ array(40) {
15+ ["HASH_HMAC"]=>
16+ int(1)
17+ ["MHASH_CRC32"]=>
18+ int(0)
19+ ["MHASH_MD5"]=>
20+ int(1)
21+ ["MHASH_SHA1"]=>
22+ int(2)
23+ ["MHASH_HAVAL256"]=>
24+ int(3)
25+ ["MHASH_RIPEMD160"]=>
26+ int(5)
27+ ["MHASH_TIGER"]=>
28+ int(7)
29+ ["MHASH_GOST"]=>
30+ int(8)
31+ ["MHASH_CRC32B"]=>
32+ int(9)
33+ ["MHASH_HAVAL224"]=>
34+ int(10)
35+ ["MHASH_HAVAL192"]=>
36+ int(11)
37+ ["MHASH_HAVAL160"]=>
38+ int(12)
39+ ["MHASH_HAVAL128"]=>
40+ int(13)
41+ ["MHASH_TIGER128"]=>
42+ int(14)
43+ ["MHASH_TIGER160"]=>
44+ int(15)
45+ ["MHASH_MD4"]=>
46+ int(16)
47+ ["MHASH_SHA256"]=>
48+ int(17)
49+ ["MHASH_ADLER32"]=>
50+ int(18)
51+ ["MHASH_SHA224"]=>
52+ int(19)
53+ ["MHASH_SHA512"]=>
54+ int(20)
55+ ["MHASH_SHA384"]=>
56+ int(21)
57+ ["MHASH_WHIRLPOOL"]=>
58+ int(22)
59+ ["MHASH_RIPEMD128"]=>
60+ int(23)
61+ ["MHASH_RIPEMD256"]=>
62+ int(24)
63+ ["MHASH_RIPEMD320"]=>
64+ int(25)
65+ ["MHASH_SNEFRU256"]=>
66+ int(27)
67+ ["MHASH_MD2"]=>
68+ int(28)
69+ ["MHASH_FNV132"]=>
70+ int(29)
71+ ["MHASH_FNV1A32"]=>
72+ int(30)
73+ ["MHASH_FNV164"]=>
74+ int(31)
75+ ["MHASH_FNV1A64"]=>
76+ int(32)
77+ ["MHASH_JOAAT"]=>
78+ int(33)
79+ ["MHASH_CRC32C"]=>
80+ int(34)
81+ ["MHASH_MURMUR3A"]=>
82+ int(35)
83+ ["MHASH_MURMUR3C"]=>
84+ int(36)
85+ ["MHASH_MURMUR3F"]=>
86+ int(37)
87+ ["MHASH_XXH32"]=>
88+ int(38)
89+ ["MHASH_XXH64"]=>
90+ int(39)
91+ ["MHASH_XXH3"]=>
92+ int(40)
93+ ["MHASH_XXH128"]=>
94+ int(41)
95+ }
96+
97+ Deprecated: Function mhash() is deprecated in %s on line %d
98+ bool(false)
You can’t perform that action at this time.
0 commit comments