From: Mans Rullgard Date: Sun, 3 Jul 2011 18:14:01 +0000 (+0100) Subject: des: allow unaligned input and output buffers X-Git-Tag: android-x86-4.4-r1~12310^2~557 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=9e52a40695609259d1f2fe1d9381ea45f9824272;p=android-x86%2Fexternal-ffmpeg.git des: allow unaligned input and output buffers Signed-off-by: Mans Rullgard --- diff --git a/libavutil/des.c b/libavutil/des.c index 5de816387f..db2227b6ec 100644 --- a/libavutil/des.c +++ b/libavutil/des.c @@ -299,10 +299,10 @@ int av_des_init(AVDES *d, const uint8_t *key, int key_bits, int decrypt) { } void av_des_crypt(AVDES *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt) { - uint64_t iv_val = iv ? av_be2ne64(*(uint64_t *)iv) : 0; + uint64_t iv_val = iv ? AV_RB64(iv) : 0; while (count-- > 0) { uint64_t dst_val; - uint64_t src_val = src ? av_be2ne64(*(const uint64_t *)src) : 0; + uint64_t src_val = src ? AV_RB64(src) : 0; if (decrypt) { uint64_t tmp = src_val; if (d->triple_des) { @@ -319,12 +319,12 @@ void av_des_crypt(AVDES *d, uint8_t *dst, const uint8_t *src, int count, uint8_t } iv_val = iv ? dst_val : 0; } - *(uint64_t *)dst = av_be2ne64(dst_val); + AV_WB64(dst, dst_val); src += 8; dst += 8; } if (iv) - *(uint64_t *)iv = av_be2ne64(iv_val); + AV_WB64(iv, iv_val); } #ifdef TEST