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- FPM:
1212  . Fixed GH-16432 (PHP-FPM 8.2 SIGSEGV in fpm_get_status). (Jakub Zelenka)
1313
14+ - Hash:
15+   . Fixed GH-16711: Segfault in mhash(). (Girgias)
16+ 
1417- OpenSSL:
1518  . Prevent unexpected array entry conversion when reading key. (nielsdos)
1619  . 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)
12131213		struct  mhash_bc_entry  algorithm_lookup  =  mhash_to_hash [algorithm ];
12141214		if  (algorithm_lookup .hash_name ) {
12151215			algo  =  zend_string_init (algorithm_lookup .hash_name , strlen (algorithm_lookup .hash_name ), 0 );
1216+ 		} else  {
1217+ 			RETURN_FALSE ;
12161218		}
1219+ 	} else  {
1220+ 		RETURN_FALSE ;
12171221	}
12181222
12191223	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+ $ renew  ReflectionExtension ("hash " );
9+ var_dump ($ regetConstants ());
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+ $ renew  ReflectionExtension ("hash " );
9+ var_dump ($ regetConstants ());
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