summaryrefslogtreecommitdiff
path: root/libavutil/blowfish.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-07-05 21:23:37 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-07-05 21:55:31 +0200
commit24823a761cb28eff5876d5de266a7d7103075e94 (patch)
treea476ad08e498a91e05f8a2b789bf6b4f495a145d /libavutil/blowfish.c
parent92c7ef1e30d677f29c06caf765c527c9db486861 (diff)
parentbb58c43c69078c6cf29a9efee12e14469e2c21f8 (diff)
Merge remote-tracking branch 'qatar/master'
* qatar/master: qdm2: remove broken and disabled dump_context() debug function x86: h264_intrapred: use newly introduced SPLAT* and PSHUFLW macros x86inc: add SPLATB_LOAD, SPLATB_REG, PSHUFLW macros x86inc: modify ALIGN to not generate long nops on i586 x86: h264_intrapred: port to cpuflag macros avplay: update input filter pointer when the filtergraph is reset. avconv: fix parsing of -force_key_frames option. h264: use templates to avoid excessive inlining xtea: Make the count parameter match the documentation blowfish: Make the count parameter match the documentation mpegvideo: Don't use ff_mspel_motion() for vc1 xtea: invert branch and loop precedence blowfish: invert branch and loop precedence flvdec: optionally trust the metadata avconv: Set audio filter time base to the sample rate vp8: Add ifdef guards around the sse2 loopfilter in the sse2slow branch too Conflicts: ffmpeg.c ffplay.c libavcodec/h264.c libavcodec/mpegvideo_common.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavutil/blowfish.c')
-rw-r--r--libavutil/blowfish.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/libavutil/blowfish.c b/libavutil/blowfish.c
index 2ef037cf8e..fd894cdb80 100644
--- a/libavutil/blowfish.c
+++ b/libavutil/blowfish.c
@@ -381,8 +381,8 @@ void av_blowfish_crypt(AVBlowfish *ctx, uint8_t *dst, const uint8_t *src,
uint32_t v0, v1;
int i;
- while (count > 0) {
- if (decrypt) {
+ if (decrypt) {
+ while (count--) {
v0 = AV_RB32(src);
v1 = AV_RB32(src + 4);
@@ -396,7 +396,12 @@ void av_blowfish_crypt(AVBlowfish *ctx, uint8_t *dst, const uint8_t *src,
dst[i] = dst[i] ^ iv[i];
memcpy(iv, src, 8);
}
- } else {
+
+ src += 8;
+ dst += 8;
+ }
+ } else {
+ while (count--) {
if (iv) {
for (i = 0; i < 8; i++)
dst[i] = src[i] ^ iv[i];
@@ -414,11 +419,10 @@ void av_blowfish_crypt(AVBlowfish *ctx, uint8_t *dst, const uint8_t *src,
if (iv)
memcpy(iv, dst, 8);
- }
- src += 8;
- dst += 8;
- count -= 8;
+ src += 8;
+ dst += 8;
+ }
}
}