diff mbox series

[FFmpeg-devel,3/4] avformat/matroskaenc: Only write useful cropping values

Message ID AS8P250MB074432A98088AE1C94D0E69F8FDA2@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM
State New
Headers show
Series [FFmpeg-devel] avformat/matroskaenc: Fix potential stack-buffer-overflow | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 fail Make fate failed
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Andreas Rheinhardt July 8, 2024, 5:52 p.m. UTC
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavformat/matroskaenc.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

Comments

James Almer July 8, 2024, 5:55 p.m. UTC | #1
On 7/8/2024 2:52 PM, Andreas Rheinhardt wrote:
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
> ---
>   libavformat/matroskaenc.c | 12 ++++++++----
>   1 file changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
> index 4b91283119..a98d33abf3 100644
> --- a/libavformat/matroskaenc.c
> +++ b/libavformat/matroskaenc.c
> @@ -1799,10 +1799,14 @@ static int mkv_write_track_video(AVFormatContext *s, MatroskaMuxContext *mkv,
>               return AVERROR(EINVAL);
>           }
>   
> -        ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPB, bottom);
> -        ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPT, top);
> -        ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPL, left);
> -        ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPR, right);
> +        if (bottom)
> +            ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPB, bottom);
> +        if (top)
> +            ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPT, top);
> +        if (left)
> +            ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPL, left);
> +        if (right)
> +            ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPR, right);
>   
>           cropped_width  -= left + right;
>           cropped_height -= top + bottom;

LGTM.
diff mbox series

Patch

diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 4b91283119..a98d33abf3 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -1799,10 +1799,14 @@  static int mkv_write_track_video(AVFormatContext *s, MatroskaMuxContext *mkv,
             return AVERROR(EINVAL);
         }
 
-        ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPB, bottom);
-        ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPT, top);
-        ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPL, left);
-        ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPR, right);
+        if (bottom)
+            ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPB, bottom);
+        if (top)
+            ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPT, top);
+        if (left)
+            ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPL, left);
+        if (right)
+            ebml_writer_add_uint(&writer, MATROSKA_ID_VIDEOPIXELCROPR, right);
 
         cropped_width  -= left + right;
         cropped_height -= top + bottom;