lavfi/lut3d: add sanity checks.
Should fix CID1026775 and CID1026774.
This commit is contained in:
		
							parent
							
								
									d5978c8678
								
							
						
					
					
						commit
						f97e28ebe5
					
				| @ -265,8 +265,8 @@ static int parse_cube(AVFilterContext *ctx, FILE *f) | ||||
|             int i, j, k; | ||||
|             const int size = strtol(line + 12, NULL, 0); | ||||
| 
 | ||||
|             if (size > MAX_LEVEL) { | ||||
|                 av_log(ctx, AV_LOG_ERROR, "Too large 3D LUT\n"); | ||||
|             if (size < 2 || size > MAX_LEVEL) { | ||||
|                 av_log(ctx, AV_LOG_ERROR, "Too large or invalid 3D LUT size\n"); | ||||
|                 return AVERROR(EINVAL); | ||||
|             } | ||||
|             lut3d->lutsize = size; | ||||
| @ -370,6 +370,12 @@ static int parse_m3d(AVFilterContext *ctx, FILE *f) | ||||
|         av_log(ctx, AV_LOG_ERROR, "in and out must be defined\n"); | ||||
|         return AVERROR_INVALIDDATA; | ||||
|     } | ||||
|     if (in < 2 || out < 2 || | ||||
|         in  > MAX_LEVEL*MAX_LEVEL*MAX_LEVEL || | ||||
|         out > MAX_LEVEL*MAX_LEVEL*MAX_LEVEL) { | ||||
|         av_log(ctx, AV_LOG_ERROR, "invalid in (%d) or out (%d)\n", in, out); | ||||
|         return AVERROR_INVALIDDATA; | ||||
|     } | ||||
|     for (size = 1; size*size*size < in; size++); | ||||
|     lut3d->lutsize = size; | ||||
|     scale = 1. / (out - 1); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user