File tree 4 files changed +203
-0
lines changed
4 files changed +203
-0
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,9 @@ PHP NEWS
11
11
- FPM:
12
12
. Fixed GH-16432 (PHP-FPM 8.2 SIGSEGV in fpm_get_status). (Jakub Zelenka)
13
13
14
+ - Hash:
15
+ . Fixed GH-16711: Segfault in mhash(). (Girgias)
16
+
14
17
- OpenSSL:
15
18
. Prevent unexpected array entry conversion when reading key. (nielsdos)
16
19
. Fix various memory leaks related to openssl exports. (nielsdos)
Original file line number Diff line number Diff line change @@ -1213,7 +1213,11 @@ PHP_FUNCTION(mhash)
1213
1213
struct mhash_bc_entry algorithm_lookup = mhash_to_hash [algorithm ];
1214
1214
if (algorithm_lookup .hash_name ) {
1215
1215
algo = zend_string_init (algorithm_lookup .hash_name , strlen (algorithm_lookup .hash_name ), 0 );
1216
+ } else {
1217
+ RETURN_FALSE ;
1216
1218
}
1219
+ } else {
1220
+ RETURN_FALSE ;
1217
1221
}
1218
1222
1219
1223
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