[FFmpeg-cvslog] swscale/x86/rgb2rgb_template: Do not crash on misaligend stride

Michael Niedermayer git at videolan.org
Tue Dec 15 11:23:06 CET 2015


ffmpeg | branch: release/2.7 | Michael Niedermayer <michael at niedermayer.cc> | Tue Dec 15 02:06:04 2015 +0100| [e7e4c65571d8aa10c8e907991a55efbd03d7aa43] | committer: Carl Eugen Hoyos

swscale/x86/rgb2rgb_template: Do not crash on misaligend stride

Fixes Ticket5013

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
(cherry picked from commit 80bfce35ccd11458e97f68f417fc094c5347070c)

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

 libswscale/x86/rgb2rgb_template.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libswscale/x86/rgb2rgb_template.c b/libswscale/x86/rgb2rgb_template.c
index e97ba4f..6524461 100644
--- a/libswscale/x86/rgb2rgb_template.c
+++ b/libswscale/x86/rgb2rgb_template.c
@@ -1887,8 +1887,10 @@ static void RENAME(interleaveBytes)(const uint8_t *src1, const uint8_t *src2, ui
     for (h=0; h < height; h++) {
         int w;
 
-        if (width >= 16)
+        if (width >= 16
 #if COMPILE_TEMPLATE_SSE2
+            && !((((intptr_t)src1) | ((intptr_t)src2) | ((intptr_t)dest))&15)
+            )
         __asm__(
             "xor              %%"REG_a", %%"REG_a"  \n\t"
             "1:                                     \n\t"
@@ -1908,6 +1910,7 @@ static void RENAME(interleaveBytes)(const uint8_t *src1, const uint8_t *src2, ui
             : "memory", XMM_CLOBBERS("xmm0", "xmm1", "xmm2",) "%"REG_a
         );
 #else
+            )
         __asm__(
             "xor %%"REG_a", %%"REG_a"               \n\t"
             "1:                                     \n\t"



More information about the ffmpeg-cvslog mailing list