From b201dcb584b430d71ad673893dfb9228b4b8d71f Mon Sep 17 00:00:00 2001 From: Bill King <bill.king@nokia.com> Date: Thu, 27 May 2010 12:15:53 +0200 Subject: [PATCH] Fix issues in botan shown up by a coverity scan Reviewed-by: kh --- src/libs/3rdparty/botan/src/alloc/mem_pool/mem_pool.cpp | 2 +- src/libs/3rdparty/botan/src/pk_pad/emsa2/emsa2.cpp | 3 ++- src/libs/3rdparty/botan/src/rng/randpool/randpool.cpp | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/libs/3rdparty/botan/src/alloc/mem_pool/mem_pool.cpp b/src/libs/3rdparty/botan/src/alloc/mem_pool/mem_pool.cpp index 38e0c3285ff..a6ebef35fd8 100644 --- a/src/libs/3rdparty/botan/src/alloc/mem_pool/mem_pool.cpp +++ b/src/libs/3rdparty/botan/src/alloc/mem_pool/mem_pool.cpp @@ -180,7 +180,7 @@ void Pooling_Allocator::deallocate(void* ptr, u32bit n) const u32bit BITMAP_SIZE = Memory_Block::bitmap_size(); const u32bit BLOCK_SIZE = Memory_Block::block_size(); - if(ptr == 0 && n == 0) + if(ptr == 0 || n == 0) return; Mutex_Holder lock(mutex); diff --git a/src/libs/3rdparty/botan/src/pk_pad/emsa2/emsa2.cpp b/src/libs/3rdparty/botan/src/pk_pad/emsa2/emsa2.cpp index 168f9209e35..aee323130e8 100644 --- a/src/libs/3rdparty/botan/src/pk_pad/emsa2/emsa2.cpp +++ b/src/libs/3rdparty/botan/src/pk_pad/emsa2/emsa2.cpp @@ -103,8 +103,9 @@ EMSA2::EMSA2(HashFunction* hash_in) : hash(hash_in) if(hash_id == 0) { + std::string hashname = hash->name(); delete hash; - throw Encoding_Error("EMSA2 cannot be used with " + hash->name()); + throw Encoding_Error("EMSA2 cannot be used with " + hashname); } } diff --git a/src/libs/3rdparty/botan/src/rng/randpool/randpool.cpp b/src/libs/3rdparty/botan/src/rng/randpool/randpool.cpp index 77a5228c663..4d7b92d15b6 100644 --- a/src/libs/3rdparty/botan/src/rng/randpool/randpool.cpp +++ b/src/libs/3rdparty/botan/src/rng/randpool/randpool.cpp @@ -186,10 +186,11 @@ Randpool::Randpool(BlockCipher* cipher_in, !cipher->valid_keylength(OUTPUT_LENGTH) || !mac->valid_keylength(OUTPUT_LENGTH)) { + std::string ciphername = cipher->name(), macname = mac->name(); delete cipher; delete mac; throw Internal_Error("Randpool: Invalid algorithm combination " + - cipher->name() + "/" + mac->name()); + ciphername + "/" + macname); } buffer.create(BLOCK_SIZE); -- GitLab