avutil/frame: Use av_realloc_array(), improve overflow check
Also use sizeof of the proper type, namely sizeof(**sd) and not sizeof(*sd). Reviewed-by: Jan Ekström <jeebjp@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
		
							parent
							
								
									b7bec5d3c9
								
							
						
					
					
						commit
						d11b5e6096
					
				@ -721,10 +721,11 @@ static AVFrameSideData *add_side_data_from_buf(AVFrameSideData ***sd,
 | 
				
			|||||||
    if (!buf)
 | 
					    if (!buf)
 | 
				
			||||||
        return NULL;
 | 
					        return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (*nb_sd > INT_MAX / sizeof(*sd) - 1)
 | 
					    // *nb_sd + 1 needs to fit into an int and a size_t.
 | 
				
			||||||
 | 
					    if ((unsigned)*nb_sd >= FFMIN(INT_MAX, SIZE_MAX))
 | 
				
			||||||
        return NULL;
 | 
					        return NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    tmp = av_realloc(*sd, (*nb_sd + 1) * sizeof(*sd));
 | 
					    tmp = av_realloc_array(*sd, sizeof(**sd), *nb_sd + 1);
 | 
				
			||||||
    if (!tmp)
 | 
					    if (!tmp)
 | 
				
			||||||
        return NULL;
 | 
					        return NULL;
 | 
				
			||||||
    *sd = tmp;
 | 
					    *sd = tmp;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user