[FFmpeg-cvslog] sws: group the parameters validity checks together

Anton Khirnov git at videolan.org
Sat Jul 3 17:20:13 EEST 2021


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Wed May 19 11:55:22 2021 +0200| [2730639259f5bdf81d4223cd8f4275e2939a1482] | committer: Anton Khirnov

sws: group the parameters validity checks together

Also, fail with an error code rather than 0.

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

 libswscale/swscale.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index 1cf89e4684..37c7cf60dd 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -890,6 +890,15 @@ int attribute_align_arg sws_scale(struct SwsContext *c,
         return AVERROR(EINVAL);
     }
 
+    if (!check_image_pointers(srcSlice, c->srcFormat, srcStride)) {
+        av_log(c, AV_LOG_ERROR, "bad src image pointers\n");
+        return AVERROR(EINVAL);
+    }
+    if (!check_image_pointers((const uint8_t* const*)dst, c->dstFormat, dstStride)) {
+        av_log(c, AV_LOG_ERROR, "bad dst image pointers\n");
+        return AVERROR(EINVAL);
+    }
+
     if (c->gamma_flag && c->cascaded_context[0])
         return scale_gamma(c, srcSlice, srcStride, srcSliceY, srcSliceH, dst, dstStride);
 
@@ -905,15 +914,6 @@ int attribute_align_arg sws_scale(struct SwsContext *c,
     if (srcSliceH == 0)
         return 0;
 
-    if (!check_image_pointers(srcSlice, c->srcFormat, srcStride)) {
-        av_log(c, AV_LOG_ERROR, "bad src image pointers\n");
-        return 0;
-    }
-    if (!check_image_pointers((const uint8_t* const*)dst, c->dstFormat, dstStride)) {
-        av_log(c, AV_LOG_ERROR, "bad dst image pointers\n");
-        return 0;
-    }
-
     if (c->sliceDir == 0 && srcSliceY != 0 && srcSliceY + srcSliceH != c->srcH) {
         av_log(c, AV_LOG_ERROR, "Slices start in the middle!\n");
         return 0;



More information about the ffmpeg-cvslog mailing list