aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/mac/cbc_mac
diff options
context:
space:
mode:
authorlloyd <[email protected]>2015-03-04 04:30:20 +0000
committerlloyd <[email protected]>2015-03-04 04:30:20 +0000
commit2591a2cd863696b91128ff4a8461bb96d497e7b4 (patch)
treeacb7a179a0790ec63c0c21ecb2ea9d7939e05248 /src/lib/mac/cbc_mac
parentc794f78bd9b7eebc58c39fd00de90b26fb4cfb67 (diff)
Hide Algorithm_Factory and use the functions in lookup.h internally.
Fix two memory leaks (in TLS and modes) caused by calling get_foo and then cloning the result before saving it (leaking the original object), a holdover from the conversion between construction techniques in 1.11.14
Diffstat (limited to 'src/lib/mac/cbc_mac')
-rw-r--r--src/lib/mac/cbc_mac/cbc_mac.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/lib/mac/cbc_mac/cbc_mac.cpp b/src/lib/mac/cbc_mac/cbc_mac.cpp
index d893b922f..f07c7fe37 100644
--- a/src/lib/mac/cbc_mac/cbc_mac.cpp
+++ b/src/lib/mac/cbc_mac/cbc_mac.cpp
@@ -13,7 +13,10 @@ namespace Botan {
CBC_MAC* CBC_MAC::make(const Spec& spec)
{
if(spec.arg_count() == 1)
- return new CBC_MAC(Algo_Registry<BlockCipher>::global_registry().make(spec.arg(0)));
+ {
+ if(auto bc = make_block_cipher(spec.arg(0)))
+ return new CBC_MAC(bc.release());
+ }
return nullptr;
}