aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Willi <martin@strongswan.org>2005-11-22 07:50:19 +0000
committerMartin Willi <martin@strongswan.org>2005-11-22 07:50:19 +0000
commit2f85618126683ee44ca77cb6968820f87da1cb78 (patch)
treefd1fbc7518a384ebc5c2cac351c0083a83c5a3f0
parent781fadcc33a1929f485395b1d94f24e54b943458 (diff)
downloadstrongswan-2f85618126683ee44ca77cb6968820f87da1cb78.tar.bz2
strongswan-2f85618126683ee44ca77cb6968820f87da1cb78.tar.xz
- fixed memleak in sha1
-rw-r--r--Source/charon/transforms/hashers/hasher.c4
-rw-r--r--Source/charon/transforms/hashers/hasher.h4
-rw-r--r--Source/charon/transforms/hashers/hasher_sha1.c18
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;
}