aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2015-12-15 02:06:04 +0100
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2015-12-15 11:19:36 +0100
commitf8b83cfa1c8504f3f43a0e8d05bd6d3ac689bf7f (patch)
tree71f5643b4de7b6dd383f7b623c4cef90e1ea5e67
parentd52b5f85f2837b0de9bdefe2a650d8d1b0e02ec1 (diff)
downloadffmpeg-f8b83cfa1c8504f3f43a0e8d05bd6d3ac689bf7f.tar.gz
swscale/x86/rgb2rgb_template: Do not crash on misaligend stride
Fixes Ticket5013 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> (cherry picked from commit 80bfce35ccd11458e97f68f417fc094c5347070c)
-rw-r--r--libswscale/x86/rgb2rgb_template.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libswscale/x86/rgb2rgb_template.c b/libswscale/x86/rgb2rgb_template.c
index e9b131e033..03153fd573 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"