diff options
author | kaotisk <kaotisk@arching-kaos.org> | 2025-04-29 06:42:35 +0300 |
---|---|---|
committer | kaotisk <kaotisk@arching-kaos.org> | 2025-04-29 06:42:35 +0300 |
commit | 4661198dabd477c950c3a3fecbde0d62f738ec9d (patch) | |
tree | 0386eb57a8b2f2ca210b5e0ecf5f24f6ad62d5c4 | |
parent | ba63ed7e423982d5bab2ab9ae8f7fda06c8ae7e2 (diff) | |
download | arching-kaos-tools-4661198dabd477c950c3a3fecbde0d62f738ec9d.tar.gz arching-kaos-tools-4661198dabd477c950c3a3fecbde0d62f738ec9d.tar.bz2 arching-kaos-tools-4661198dabd477c950c3a3fecbde0d62f738ec9d.zip |
Reducing leaksorigin/libakfs-cat-from-map-v3-hash
-rw-r--r-- | c_implementation/src/ak_fs.c | 2 | ||||
-rw-r--r-- | c_implementation/src/ak_fs_main.c | 4 | ||||
-rw-r--r-- | c_implementation/src/ak_fs_map_v3.c | 5 | ||||
-rw-r--r-- | 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 <stdio.h> #include <string.h> +#include <stdlib.h> #include <libakfs.h> #include <libaklog.h> #include <sys/stat.h> @@ -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; |