[FFmpeg-devel] [PATCH 4/4] avcodec/mobiclip: Rewrite code to make it more clearer

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Thu Nov 18 11:13:57 EET 2021


In order to know that the earlier code did not use uninitialized
values one needs to know that the lowest four bits of each used
value of pframe_block4x4_coefficients_tab do not vanish identically.
E.g. Coverity did not get this and warned about it in ticket #1466632.
Fix this by slightly rewriting the code.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
 libavcodec/mobiclip.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/libavcodec/mobiclip.c b/libavcodec/mobiclip.c
index 6ea1c3eefa..23d64f76f6 100644
--- a/libavcodec/mobiclip.c
+++ b/libavcodec/mobiclip.c
@@ -491,7 +491,7 @@ static int add_pframe_coefficients(AVCodecContext *avctx, AVFrame *frame,
     int ret, idx = get_ue_golomb_31(gb);
 
     if (idx == 0) {
-        ret = add_coefficients(avctx, frame, bx, by, size, plane);
+        return add_coefficients(avctx, frame, bx, by, size, plane);
     } else if ((unsigned)idx < FF_ARRAY_ELEMS(pframe_block4x4_coefficients_tab)) {
         int flags = pframe_block4x4_coefficients_tab[idx];
 
@@ -505,11 +505,10 @@ static int add_pframe_coefficients(AVCodecContext *avctx, AVFrame *frame,
                 flags >>= 1;
             }
         }
+        return 0;
     } else {
-        ret = AVERROR_INVALIDDATA;
+        return AVERROR_INVALIDDATA;
     }
-
-    return ret;
 }
 
 static int adjust(int x, int size)
-- 
2.30.2



More information about the ffmpeg-devel mailing list