aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkaotisk <kaotisk@arching-kaos.org>2025-03-28 17:13:34 +0200
committerkaotisk <kaotisk@arching-kaos.org>2025-03-28 17:13:34 +0200
commit24142c94ca1fe2c350172e529d0ac9b4001e9307 (patch)
treee9b438be202f3f99b494b9a153cdb9cec181bece
parent50502ec2b41733ba5f152cbde457f6cb66e588c6 (diff)
downloadarching-kaos-tools-24142c94ca1fe2c350172e529d0ac9b4001e9307.tar.gz
arching-kaos-tools-24142c94ca1fe2c350172e529d0ac9b4001e9307.tar.bz2
arching-kaos-tools-24142c94ca1fe2c350172e529d0ac9b4001e9307.zip
Avoiding malloc/free combo by providing a pointer to the function
-rw-r--r--src/akfs.c4
-rw-r--r--src/include/akfs.h2
-rw-r--r--src/tests/test_akfs.c27
3 files changed, 14 insertions, 19 deletions
diff --git a/src/akfs.c b/src/akfs.c
index 6388a35..c79882a 100644
--- a/src/akfs.c
+++ b/src/akfs.c
@@ -258,9 +258,8 @@ sha512sum ak_fs_sha512sum_string_to_struct(char* string)
}
}
-char* ak_fs_sha512sum_struct_to_string(sha512sum hash)
+void ak_fs_sha512sum_struct_to_string(sha512sum hash, char* string)
{
- char *string = malloc(129);
int counter = 0;
for (size_t i = 0; i < 8; ++i)
{
@@ -324,5 +323,4 @@ char* ak_fs_sha512sum_struct_to_string(sha512sum hash)
}
}
string[128] = '\0';
- return string;
}
diff --git a/src/include/akfs.h b/src/include/akfs.h
index 1a574af..5cbcdae 100644
--- a/src/include/akfs.h
+++ b/src/include/akfs.h
@@ -19,7 +19,7 @@ int ak_fs_create_dir_for_hash(char*);
sha512sum ak_fs_sha512sum_string_to_struct(char*);
-char* ak_fs_sha512sum_struct_to_string(sha512sum);
+void ak_fs_sha512sum_struct_to_string(sha512sum, char*);
#endif // AKFS
diff --git a/src/tests/test_akfs.c b/src/tests/test_akfs.c
index 5e2c6ad..079c00c 100644
--- a/src/tests/test_akfs.c
+++ b/src/tests/test_akfs.c
@@ -10,7 +10,8 @@ void correct_string_correct_length()
// printf("Hash given:\t%s\n", queried_string);
// printf("Is a hash: %s\n", ak_fs_verify_input_is_hash(queried_string) ? "true": "false");
sha512sum resulted_hash = ak_fs_sha512sum_string_to_struct(queried_string);
- char* resulted_string = ak_fs_sha512sum_struct_to_string(resulted_hash);
+ char resulted_string[129] = {0};
+ ak_fs_sha512sum_struct_to_string(resulted_hash, resulted_string);
// printf("Hash returned:\t%s\n", resulted_string);
if ( strcmp(queried_string, resulted_string) == 0 )
{
@@ -20,7 +21,6 @@ void correct_string_correct_length()
{
printf("NO PASS :(\n");
}
- free(resulted_string);
}
void bad_string_correct_length()
@@ -30,7 +30,8 @@ void bad_string_correct_length()
// printf("Hash given:\t%s\n", queried_string);
// printf("Is a hash: %s\n", ak_fs_verify_input_is_hash(queried_string) ? "true": "false");
sha512sum resulted_hash = ak_fs_sha512sum_string_to_struct(queried_string);
- char* resulted_string = ak_fs_sha512sum_struct_to_string(resulted_hash);
+ char resulted_string[129] = {0};
+ ak_fs_sha512sum_struct_to_string(resulted_hash, resulted_string);
// printf("Hash returned:\t%s\n", resulted_string);
if ( strcmp(queried_string, resulted_string) != 0 )
{
@@ -40,7 +41,6 @@ void bad_string_correct_length()
{
printf("NO PASS :(\n");
}
- free(resulted_string);
}
void less_than_length()
@@ -50,7 +50,8 @@ void less_than_length()
// printf("Hash given:\t%s\n", queried_string);
// printf("Is a hash: %s\n", ak_fs_verify_input_is_hash(queried_string) ? "true": "false");
sha512sum resulted_hash = ak_fs_sha512sum_string_to_struct(queried_string);
- char* resulted_string = ak_fs_sha512sum_struct_to_string(resulted_hash);
+ char resulted_string[129] = {0};
+ ak_fs_sha512sum_struct_to_string(resulted_hash, resulted_string);
// printf("Hash returned:\t%s\n", resulted_string);
if ( strcmp(queried_string, resulted_string) != 0 )
{
@@ -60,7 +61,6 @@ void less_than_length()
{
printf("\tNO PASS :(\n");
}
- free(resulted_string);
}
void more_than_length()
@@ -70,7 +70,8 @@ void more_than_length()
// printf("Hash given:\t%s\n", queried_string);
// printf("Is a hash: %s\n", ak_fs_verify_input_is_hash(queried_string) ? "true": "false");
sha512sum resulted_hash = ak_fs_sha512sum_string_to_struct(queried_string);
- char* resulted_string = ak_fs_sha512sum_struct_to_string(resulted_hash);
+ char resulted_string[129] = {0};
+ ak_fs_sha512sum_struct_to_string(resulted_hash, resulted_string);
// printf("Hash returned:\t%s\n", resulted_string);
if ( strcmp(queried_string, resulted_string) != 0 )
{
@@ -80,7 +81,6 @@ void more_than_length()
{
printf("\tNO PASS :(\n");
}
- free(resulted_string);
}
void string_is_empty()
@@ -90,7 +90,8 @@ void string_is_empty()
// printf("Hash given:\t%s\n", queried_string);
//printf("Is a hash: %s\n", ak_fs_verify_input_is_hash(queried_string) ? "true": "false");
sha512sum resulted_hash = ak_fs_sha512sum_string_to_struct(queried_string);
- char* resulted_string = ak_fs_sha512sum_struct_to_string(resulted_hash);
+ char resulted_string[129] = {0};
+ ak_fs_sha512sum_struct_to_string(resulted_hash, resulted_string);
// printf("Hash returned:\t%s\n", resulted_string);
if ( strcmp(queried_string, resulted_string) != 0 )
{
@@ -100,7 +101,6 @@ void string_is_empty()
{
printf("\t\tNO PASS :(\n");
}
- free(resulted_string);
}
void hash_path_test()
@@ -119,7 +119,6 @@ void hash_path_test()
{
printf("\t\tNO PASS :(\n");
}
- free(resulted_string);
}
void hash_dir_test()
@@ -138,7 +137,6 @@ void hash_dir_test()
{
printf("\t\tNO PASS :(\n");
}
- free(resulted_string);
}
void hash_save_to_file()
@@ -156,7 +154,6 @@ void hash_save_to_file()
}
fwrite(&resulted_hash, sizeof(sha512sum),1,fd);
fclose(fd);
-
sha512sum readone = {0};
fd = fopen("tmpfile", "rb");
if ( fd == NULL )
@@ -165,8 +162,8 @@ void hash_save_to_file()
exit(1);
}
fread (&readone, sizeof(sha512sum),1,fd);
- char* resulted_string = ak_fs_sha512sum_struct_to_string(readone);
-
+ char resulted_string[129] = {0};
+ ak_fs_sha512sum_struct_to_string(resulted_hash, resulted_string);
if ( strcmp(queried_string, resulted_string) == 0 )
{
printf("\tPASS!\n");