aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorame <[email protected]>2024-04-11 19:46:15 -0500
committerame <[email protected]>2024-04-11 19:46:15 -0500
commit3c2aab1e1f048412732d34912b4665f735e93b01 (patch)
tree109c743e127edd3f6c6ad488642ed0c50063d7ba /src
parent6ee160004855b492167de13c9539c46e9dcd98c7 (diff)
fix some leaks
Diffstat (limited to 'src')
-rw-r--r--src/hash/blake.c8
-rw-r--r--src/hash/md5.c1
-rw-r--r--src/hash/sha01.c2
-rw-r--r--src/hash/sha2-256.c5
4 files changed, 16 insertions, 0 deletions
diff --git a/src/hash/blake.c b/src/hash/blake.c
index 096c951..bd73cef 100644
--- a/src/hash/blake.c
+++ b/src/hash/blake.c
@@ -253,12 +253,16 @@ void blake256(char *out, char *in, uint64_t inlen){
struct blake256_hash a = blake256_init();
blake256_update((uint8_t*)in, inlen, &a);
blake256_final(&a, out);
+ free(a.buffer);
+ free(a.hash);
}
void blake224(char *out, char *in, uint64_t inlen){
struct blake224_hash a = blake224_init();
blake224_update((uint8_t*)in, inlen, &a);
blake224_final(&a, out);
+ free(a.buffer);
+ free(a.hash);
}
#define blake_round_512(a,b,c,d,e) \
@@ -449,6 +453,8 @@ void blake512(uint8_t* in, size_t len, char* out){
struct blake512_hash a = blake512_init();
blake512_update(in, len, &a);
blake512_final(&a, out);
+ free(a.buffer);
+ free(a.hash);
}
void blake384_final(struct blake384_hash* hash, char* out_stream){
@@ -474,6 +480,8 @@ void blake384(uint8_t* in, size_t len, char* out){
struct blake384_hash a = blake384_init();
blake384_update(in, len, &a);
blake384_final(&a, out);
+ free(a.buffer);
+ free(a.hash);
}
int l_blake256_clone(lua_State* L){
diff --git a/src/hash/md5.c b/src/hash/md5.c
index 26f89e2..9dd4612 100644
--- a/src/hash/md5.c
+++ b/src/hash/md5.c
@@ -151,6 +151,7 @@ void md5(uint8_t* input, size_t len, char out_stream[64]){
struct md5_hash aa = md5_init();
md5_update(input, len, &aa);
md5_final(&aa, out_stream);
+ free(aa.buffer);
}
int l_md5(lua_State* L){
diff --git a/src/hash/sha01.c b/src/hash/sha01.c
index dffe690..d382465 100644
--- a/src/hash/sha01.c
+++ b/src/hash/sha01.c
@@ -164,12 +164,14 @@ void sha0(uint8_t* a, size_t len, char* out_stream){
struct sha01_hash aa = sha0_init();
sha0_update(a, len, &aa);
sha0_final(&aa, out_stream);
+ free(aa.buffer);
}
void sha1(uint8_t* a, size_t len, char* out_stream){
struct sha01_hash aa = sha1_init();
sha1_update(a, len, &aa);
sha1_final(&aa, out_stream);
+ free(aa.buffer);
}
common_hash_clone(sha1);
diff --git a/src/hash/sha2-256.c b/src/hash/sha2-256.c
index 69029bf..6086fd7 100644
--- a/src/hash/sha2-256.c
+++ b/src/hash/sha2-256.c
@@ -211,12 +211,14 @@ void sha512(uint8_t* in, size_t len, char* out){
struct sha512_hash a = sha512_init();
sha512_update(in, len, &a);
sha512_final(&a, out);
+ free(a.buffer);
}
void sha384(uint8_t* in, size_t len, char* out){
struct sha512_hash a = sha384_init();
sha384_update(in, len, &a);
sha384_final(&a, out);
+ free(a.buffer);
}
void sha512_t(uint8_t* in, size_t len, int t, char* out){
@@ -224,7 +226,9 @@ void sha512_t(uint8_t* in, size_t len, int t, char* out){
sha512_update(in, len, &a);
sha512_final(&a, out);
out[t/4] = '\0';
+ free(a.buffer);
}
+
struct iv sha_iv_gen(int i){
struct iv oh = {.h0 = sha512_iv.h0 ^ 0xa5a5a5a5a5a5a5a5, .h1 = sha512_iv.h1 ^ 0xa5a5a5a5a5a5a5a5, .h2 = sha512_iv.h2 ^ 0xa5a5a5a5a5a5a5a5,
.h3 = sha512_iv.h3 ^ 0xa5a5a5a5a5a5a5a5, .h4 = sha512_iv.h4 ^ 0xa5a5a5a5a5a5a5a5, .h5 = sha512_iv.h5 ^ 0xa5a5a5a5a5a5a5a5,
@@ -236,6 +240,7 @@ struct iv sha_iv_gen(int i){
struct sha512_hash a = sha512_t_init(oh);
sha512_update(in, strlen((char*)in), &a);
_sha512_t_final(&a);
+ free(a.buffer);
return (struct iv){.h0 = a.h0, .h1 = a.h1, .h2 = a.h2, .h3 = a.h3, .h4 = a.h4, .h5 = a.h5, .h6 = a.h6, .h7 = a.h7};
}