diff options
author | Martin Willi <martin@strongswan.org> | 2005-11-22 07:50:19 +0000 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2005-11-22 07:50:19 +0000 |
commit | 2f85618126683ee44ca77cb6968820f87da1cb78 (patch) | |
tree | fd1fbc7518a384ebc5c2cac351c0083a83c5a3f0 | |
parent | 781fadcc33a1929f485395b1d94f24e54b943458 (diff) | |
download | strongswan-2f85618126683ee44ca77cb6968820f87da1cb78.tar.bz2 strongswan-2f85618126683ee44ca77cb6968820f87da1cb78.tar.xz |
- fixed memleak in sha1
-rw-r--r-- | Source/charon/transforms/hashers/hasher.c | 4 | ||||
-rw-r--r-- | Source/charon/transforms/hashers/hasher.h | 4 | ||||
-rw-r--r-- | Source/charon/transforms/hashers/hasher_sha1.c | 18 |
3 files changed, 13 insertions, 13 deletions
diff --git a/Source/charon/transforms/hashers/hasher.c b/Source/charon/transforms/hashers/hasher.c index 2055824ff..14ace82f9 100644 --- a/Source/charon/transforms/hashers/hasher.c +++ b/Source/charon/transforms/hashers/hasher.c @@ -34,11 +34,11 @@ hasher_t *hasher_create(hash_algorithm_t hash_algorithm) { switch (hash_algorithm) { - case SHA1: + case HASH_SHA1: { return (hasher_t*)hasher_sha1_create(); } - case MD5: + case HASH_MD5: default: return NULL; } diff --git a/Source/charon/transforms/hashers/hasher.h b/Source/charon/transforms/hashers/hasher.h index ff7fcc361..534d0bfd1 100644 --- a/Source/charon/transforms/hashers/hasher.h +++ b/Source/charon/transforms/hashers/hasher.h @@ -32,8 +32,8 @@ typedef enum hash_algorithm_e hash_algorithm_t; enum hash_algorithm_e { - SHA1, - MD5 + HASH_SHA1, + HASH_MD5 }; diff --git a/Source/charon/transforms/hashers/hasher_sha1.c b/Source/charon/transforms/hashers/hasher_sha1.c index 8dfc35870..e78627178 100644 --- a/Source/charon/transforms/hashers/hasher_sha1.c +++ b/Source/charon/transforms/hashers/hasher_sha1.c @@ -206,22 +206,22 @@ static status_t get_hash(private_hasher_sha1_t *this, chunk_t chunk, u_int8_t *b static status_t allocate_hash(private_hasher_sha1_t *this, chunk_t chunk, chunk_t *hash) { chunk_t allocated_hash; - allocated_hash.ptr = allocator_alloc(BLOCK_SIZE_SHA1); - allocated_hash.len = BLOCK_SIZE_SHA1; - if (allocated_hash.ptr == NULL) - { - return OUT_OF_RES; - } SHA1Update(this, chunk.ptr, chunk.len); if (hash != NULL) - { + { + allocated_hash.ptr = allocator_alloc(BLOCK_SIZE_SHA1); + allocated_hash.len = BLOCK_SIZE_SHA1; + if (allocated_hash.ptr == NULL) + { + return OUT_OF_RES; + } SHA1Final(this, allocated_hash.ptr); this->public.hasher_interface.reset(&(this->public.hasher_interface)); + + *hash = allocated_hash; } - *hash = allocated_hash; - return SUCCESS; } |