diff mbox series

[FFmpeg-devel,03/17] lavf/webvttenc: fix avio_printf argument types after bump

Message ID 20210405110952.17679-4-anton@khirnov.net
State Accepted
Commit 9168a1c0e67b5c31727b12329b6f52d2bb5e0a14
Headers show
Series [FFmpeg-devel,01/17] lavu: postpone child_class_next API removal
Related show

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate success Make fate finished
andriy/PPC64_make success Make finished
andriy/PPC64_make_fate success Make fate finished

Commit Message

Anton Khirnov April 5, 2021, 11:09 a.m. UTC
Field precision supplied with the '*' specification must be an int.
---
 libavformat/webvttenc.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/libavformat/webvttenc.c b/libavformat/webvttenc.c
index 552bc38b65..809fead69f 100644
--- a/libavformat/webvttenc.c
+++ b/libavformat/webvttenc.c
@@ -65,6 +65,7 @@  static int webvtt_write_packet(AVFormatContext *ctx, AVPacket *pkt)
 {
     AVIOContext  *pb = ctx->pb;
     buffer_size_t id_size, settings_size;
+    int id_size_int, settings_size_int;
     uint8_t *id, *settings;
 
     avio_printf(pb, "\n");
@@ -72,8 +73,12 @@  static int webvtt_write_packet(AVFormatContext *ctx, AVPacket *pkt)
     id = av_packet_get_side_data(pkt, AV_PKT_DATA_WEBVTT_IDENTIFIER,
                                  &id_size);
 
-    if (id && id_size > 0)
-        avio_printf(pb, "%.*s\n", id_size, id);
+    if (id_size > INT_MAX)
+        return AVERROR(EINVAL);
+
+    id_size_int = id_size;
+    if (id && id_size_int > 0)
+        avio_printf(pb, "%.*s\n", id_size_int, id);
 
     webvtt_write_time(pb, pkt->pts);
     avio_printf(pb, " --> ");
@@ -82,8 +87,12 @@  static int webvtt_write_packet(AVFormatContext *ctx, AVPacket *pkt)
     settings = av_packet_get_side_data(pkt, AV_PKT_DATA_WEBVTT_SETTINGS,
                                        &settings_size);
 
-    if (settings && settings_size > 0)
-        avio_printf(pb, " %.*s", settings_size, settings);
+    if (settings_size_int > INT_MAX)
+        return AVERROR(EINVAL);
+
+    settings_size_int = settings_size;
+    if (settings && settings_size_int > 0)
+        avio_printf(pb, " %.*s", settings_size_int, settings);
 
     avio_printf(pb, "\n");