lavu/opt: make sure av_opt_set_bin() handles NULL/0.
This commit is contained in:
		@@ -420,8 +420,8 @@ int av_opt_set_bin(void *obj, const char *name, const uint8_t *val, int len, int
 | 
				
			|||||||
    if (o->type != AV_OPT_TYPE_BINARY)
 | 
					    if (o->type != AV_OPT_TYPE_BINARY)
 | 
				
			||||||
        return AVERROR(EINVAL);
 | 
					        return AVERROR(EINVAL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ptr = av_malloc(len);
 | 
					    ptr = len ? av_malloc(len) : NULL;
 | 
				
			||||||
    if (!ptr)
 | 
					    if (len && !ptr)
 | 
				
			||||||
        return AVERROR(ENOMEM);
 | 
					        return AVERROR(ENOMEM);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    dst = (uint8_t **)(((uint8_t *)target_obj) + o->offset);
 | 
					    dst = (uint8_t **)(((uint8_t *)target_obj) + o->offset);
 | 
				
			||||||
@@ -430,7 +430,8 @@ int av_opt_set_bin(void *obj, const char *name, const uint8_t *val, int len, int
 | 
				
			|||||||
    av_free(*dst);
 | 
					    av_free(*dst);
 | 
				
			||||||
    *dst = ptr;
 | 
					    *dst = ptr;
 | 
				
			||||||
    *lendst = len;
 | 
					    *lendst = len;
 | 
				
			||||||
    memcpy(ptr, val, len);
 | 
					    if (len)
 | 
				
			||||||
 | 
					        memcpy(ptr, val, len);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user