From 4661198dabd477c950c3a3fecbde0d62f738ec9d Mon Sep 17 00:00:00 2001 From: kaotisk Date: Tue, 29 Apr 2025 06:42:35 +0300 Subject: Reducing leaks --- c_implementation/src/ak_fs.c | 2 ++ c_implementation/src/ak_fs_main.c | 4 ++-- c_implementation/src/ak_fs_map_v3.c | 5 +++++ c_implementation/src/ak_fs_sha512sum.c | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/c_implementation/src/ak_fs.c b/c_implementation/src/ak_fs.c index 1a9e821..07178bc 100644 --- a/c_implementation/src/ak_fs.c +++ b/c_implementation/src/ak_fs.c @@ -340,6 +340,8 @@ int ak_fs_cat_file_from_root_hash(sha512sum* rh) h_str[128] = '\0'; memcpy(t_str, buffer + 129, 128); t_str[128] = '\0'; + fclose(fd); + // free(fullpath); ak_fs_sha512sum_string_to_struct(h_str, &h0.head); ak_fs_sha512sum_string_to_struct(t_str, &h0.tail); ak_fs_cat_file_from_root_hash(&h0.head); diff --git a/c_implementation/src/ak_fs_main.c b/c_implementation/src/ak_fs_main.c index 6b523c7..b25e308 100644 --- a/c_implementation/src/ak_fs_main.c +++ b/c_implementation/src/ak_fs_main.c @@ -33,8 +33,8 @@ int ak_fs_main(int argc, char** argv) return ak_fs_ls(); case 'C': ak_fs_map_v3_init(&map); - ak_fs_sha512sum_string_to_struct(optarg, &map.mh); - ak_fs_map_v3_open_from_file(&map); + if ( ak_fs_sha512sum_string_to_struct(optarg, &map.mh) != 0 ) return -1; + if ( ak_fs_map_v3_open_from_file(&map) != 0 ) return -2; return ak_fs_cfm(&map); default: printf("double lol\n"); diff --git a/c_implementation/src/ak_fs_map_v3.c b/c_implementation/src/ak_fs_map_v3.c index 6774f65..1d3e37e 100644 --- a/c_implementation/src/ak_fs_map_v3.c +++ b/c_implementation/src/ak_fs_map_v3.c @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -179,12 +180,14 @@ int ak_fs_map_v3_open_from_file(akfs_map_v3 * map) { // perror("fopen"); ak_log_debug(__func__, "File not found or other error"); + free(full_path); return 1; } struct stat sb; if (stat(full_path, &sb) == -1) { perror("stat"); fclose(fd); + free(full_path); return 2; } // File size: %lld in bytes: (long long) sb.st_size); @@ -195,9 +198,11 @@ int ak_fs_map_v3_open_from_file(akfs_map_v3 * map) { ak_log_debug(__func__,"conversion failed"); fclose(fd); + free(full_path); return 1; } fclose(fd); + free(full_path); return 0; } diff --git a/c_implementation/src/ak_fs_sha512sum.c b/c_implementation/src/ak_fs_sha512sum.c index 6a2ebaa..619269f 100644 --- a/c_implementation/src/ak_fs_sha512sum.c +++ b/c_implementation/src/ak_fs_sha512sum.c @@ -40,7 +40,7 @@ void ak_fs_sha512sum_init_avail(sha512sum** m, size_t s) char* ak_fs_sha512sum_struct_read_as_string(const sha512sum *ptr) { - char *str = malloc(129*sizeof(char)); + static char str[129] = {0}; // = malloc(129*sizeof(char)); ak_fs_sha512sum_struct_to_string(ptr, str); // ak_log_debug(__func__, str); return str; -- cgit v1.2.3