From 7eea232f449c19048197eca0b010ccfef675d92f Mon Sep 17 00:00:00 2001 From: Andreas Steffen Date: Thu, 14 May 2009 10:54:39 +0200 Subject: [PATCH] clone iv before blowfish en|decryption --- src/libstrongswan/plugins/blowfish/blowfish_crypter.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/libstrongswan/plugins/blowfish/blowfish_crypter.c b/src/libstrongswan/plugins/blowfish/blowfish_crypter.c index b70ea22c1..01e6cf513 100644 --- a/src/libstrongswan/plugins/blowfish/blowfish_crypter.c +++ b/src/libstrongswan/plugins/blowfish/blowfish_crypter.c @@ -109,8 +109,11 @@ static void decrypt(private_blowfish_crypter_t *this, chunk_t data, chunk_t iv, out = data.ptr; } in = data.ptr; + iv = chunk_clone(iv); - BF_cbc_encrypt(in, out, data.len, &this->schedule, iv.ptr, 0); + BF_cbc_encrypt(in, out, data.len, &this->schedule, iv.ptr, 0); + + free(iv.ptr); } /** @@ -131,8 +134,11 @@ static void encrypt (private_blowfish_crypter_t *this, chunk_t data, chunk_t iv, out = data.ptr; } in = data.ptr; + iv = chunk_clone(iv); - BF_cbc_encrypt(in, out, data.len, &this->schedule, iv.ptr, 1); + BF_cbc_encrypt(in, out, data.len, &this->schedule, iv.ptr, 1); + + free(iv.ptr); } /**