lavfi/tests: Fix 16-bit vf_blend test to avoid memory not aligned to 2 bytes
authorAndrey Semashev <andrey.semashev@gmail.com>
Wed, 23 May 2018 21:07:36 +0000 (00:07 +0300)
committerMichael Niedermayer <michael@niedermayer.cc>
Wed, 30 May 2018 00:42:10 +0000 (02:42 +0200)
Generic C implementation of vf_blend performs reads and writes of 16-bit
elements, which requires the buffers to be aligned to at least 2-byte
boundary.

Also, the change fixes source buffer overrun caused by src_offset being
added to to test handling of misaligned buffers.

Fixes: #7226

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
tests/checkasm/vf_blend.c

index 912f3a2..a7578fe 100644 (file)
@@ -71,7 +71,7 @@
         w = WIDTH / depth;                                                                 \
                                                                                            \
         for (i = 0; i < BUF_UNITS - 1; i++) {                                              \
-            int src_offset = i * SIZE_PER_UNIT + i; /* Test various alignments */          \
+            int src_offset = i * SIZE_PER_UNIT + (BUF_UNITS - 1 - i) * depth; /* Test various alignments */  \
             int dst_offset = i * SIZE_PER_UNIT; /* dst must be aligned */                  \
             randomize_buffers();                                                           \
             call_ref(top1 + src_offset, w, bot1 + src_offset, w,                           \