File tree Expand file tree Collapse file tree 2 files changed +13
-4
lines changed Expand file tree Collapse file tree 2 files changed +13
-4
lines changed Original file line number Diff line number Diff line change @@ -28,6 +28,8 @@ PHP                                                                        NEWS
2828  . Fixed bug GH-16508 (Incorrect line number in inheritance errors of delayed
2929    early bound classes). (ilutov)
3030  . Fixed bug GH-16648 (Use-after-free during array sorting). (ilutov)
31+   . Fixed bug GH-15915 (overflow with a high value for precision INI).
32+     (David Carlier / cmb)
3133
3234- Curl:
3335  . Fixed bug GH-16302 (CurlMultiHandle holds a reference to CurlHandle if
Original file line number Diff line number Diff line change @@ -3613,13 +3613,20 @@ rv_alloc(i) int i;
36133613rv_alloc (int  i )
36143614#endif 
36153615{
3616- 	int  k , * r ;
36173616
3618- 	size_t  j  =  sizeof (ULong );
3617+ 	int  j , k , * r ;
3618+ 	size_t  rem ;
3619+ 
3620+ 	rem  =  sizeof (Bigint ) -  sizeof (ULong ) -  sizeof (int );
3621+ 
3622+ 
3623+ 	j  =  sizeof (ULong );
3624+ 	if  (i  >  ((INT_MAX  >> 2 ) +  rem ))
3625+ 		zend_error_noreturn (E_ERROR , "rv_alloc() allocation overflow %d" , i );
36193626	for (k  =  0 ;
3620- 		sizeof (Bigint ) -  sizeof (ULong ) -  sizeof (int ) +  j  <= (size_t )i ;
3621- 		j  <<= 1 )
3627+ 		rem  +  j  <= (size_t )i ; j  <<= 1 )
36223628			k ++ ;
3629+ 
36233630	r  =  (int * )Balloc (k );
36243631	* r  =  k ;
36253632	return 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments