From 87f023f2c01e7004618537114e2d53be69b01019 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Tue, 2 Oct 2012 00:04:38 +0300 Subject: [PATCH] blowfish: Fix CBC decryption with dst==src MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Martin Storsjö --- libavutil/blowfish.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavutil/blowfish.c b/libavutil/blowfish.c index 35c546a898..604c0be821 100644 --- a/libavutil/blowfish.c +++ b/libavutil/blowfish.c @@ -388,15 +388,15 @@ void av_blowfish_crypt(AVBlowfish *ctx, uint8_t *dst, const uint8_t *src, av_blowfish_crypt_ecb(ctx, &v0, &v1, decrypt); - AV_WB32(dst, v0); - AV_WB32(dst + 4, v1); - if (iv) { - for (i = 0; i < 8; i++) - dst[i] = dst[i] ^ iv[i]; + v0 ^= AV_RB32(iv); + v1 ^= AV_RB32(iv + 4); memcpy(iv, src, 8); } + AV_WB32(dst, v0); + AV_WB32(dst + 4, v1); + src += 8; dst += 8; }