mirror of https://git.ffmpeg.org/ffmpeg.git
avutil/opt: Don't use NULL for %s string in a log message
If one calls av_opt_set() with an incorrect string to set the value of an option of type AV_OPT_TYPE_VIDEO_RATE, the given string is used in a log message via %s. This also happens when the string is actually a nullpointer in which case using it for %s is forbidden. This commit changes this by erroring out early in case of a nullpointer. This also fixes a warning from GCC 9.2: "‘%s’ directive argument is null [-Wformat-overflow=]" Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
edee0d0104
commit
a500b975a8
|
@ -330,12 +330,7 @@ static int set_string_image_size(void *obj, const AVOption *o, const char *val,
|
|||
|
||||
static int set_string_video_rate(void *obj, const AVOption *o, const char *val, AVRational *dst)
|
||||
{
|
||||
int ret;
|
||||
if (!val) {
|
||||
ret = AVERROR(EINVAL);
|
||||
} else {
|
||||
ret = av_parse_video_rate(dst, val);
|
||||
}
|
||||
int ret = av_parse_video_rate(dst, val);
|
||||
if (ret < 0)
|
||||
av_log(obj, AV_LOG_ERROR, "Unable to parse option value \"%s\" as video rate\n", val);
|
||||
return ret;
|
||||
|
@ -473,7 +468,7 @@ int av_opt_set(void *obj, const char *name, const char *val, int search_flags)
|
|||
return AVERROR_OPTION_NOT_FOUND;
|
||||
if (!val && (o->type != AV_OPT_TYPE_STRING &&
|
||||
o->type != AV_OPT_TYPE_PIXEL_FMT && o->type != AV_OPT_TYPE_SAMPLE_FMT &&
|
||||
o->type != AV_OPT_TYPE_IMAGE_SIZE && o->type != AV_OPT_TYPE_VIDEO_RATE &&
|
||||
o->type != AV_OPT_TYPE_IMAGE_SIZE &&
|
||||
o->type != AV_OPT_TYPE_DURATION && o->type != AV_OPT_TYPE_COLOR &&
|
||||
o->type != AV_OPT_TYPE_CHANNEL_LAYOUT && o->type != AV_OPT_TYPE_BOOL))
|
||||
return AVERROR(EINVAL);
|
||||
|
|
Loading…
Reference in New Issue