- fixed memleak in sha1

This commit is contained in:
Martin Willi
2005-11-22 07:50:19 +00:00
parent 781fadcc33
commit 2f85618126
3 changed files with 13 additions and 13 deletions
+2 -2
View File
@@ -34,11 +34,11 @@ hasher_t *hasher_create(hash_algorithm_t hash_algorithm)
{ {
switch (hash_algorithm) switch (hash_algorithm)
{ {
case SHA1: case HASH_SHA1:
{ {
return (hasher_t*)hasher_sha1_create(); return (hasher_t*)hasher_sha1_create();
} }
case MD5: case HASH_MD5:
default: default:
return NULL; return NULL;
} }
+2 -2
View File
@@ -32,8 +32,8 @@
typedef enum hash_algorithm_e hash_algorithm_t; typedef enum hash_algorithm_e hash_algorithm_t;
enum hash_algorithm_e { enum hash_algorithm_e {
SHA1, HASH_SHA1,
MD5 HASH_MD5
}; };
@@ -206,21 +206,21 @@ 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) static status_t allocate_hash(private_hasher_sha1_t *this, chunk_t chunk, chunk_t *hash)
{ {
chunk_t allocated_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); SHA1Update(this, chunk.ptr, chunk.len);
if (hash != NULL) 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); SHA1Final(this, allocated_hash.ptr);
this->public.hasher_interface.reset(&(this->public.hasher_interface)); this->public.hasher_interface.reset(&(this->public.hasher_interface));
}
*hash = allocated_hash; *hash = allocated_hash;
}
return SUCCESS; return SUCCESS;
} }