ffmpeg | branch: master | Andreas Rheinhardt <[email protected]> | 
Sun Mar 29 05:03:56 2020 +0200| [a500b975a87174f1994cf497892c2529cf42e834] | 
committer: Andreas Rheinhardt

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 <[email protected]>
Signed-off-by: Andreas Rheinhardt <[email protected]>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a500b975a87174f1994cf497892c2529cf42e834
---

 libavutil/opt.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/libavutil/opt.c b/libavutil/opt.c
index a482febf5f..bf2562737b 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -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);

_______________________________________________
ffmpeg-cvslog mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to