diff options
author | Ilya Shipitsin <chipitsine@gmail.com> | 2021-05-01 18:19:57 +0300 |
---|---|---|
committer | Ilya Shipitsin <chipitsine@gmail.com> | 2021-05-01 18:19:57 +0300 |
commit | e2b83d6fdc5c45cb563f79397e8965edf11fe41c (patch) | |
tree | d93efff94c0d4577136e07be40b4bab38748f46b | |
parent | 80937d419d4c9e343dfd84710e02c670e550b778 (diff) |
Hamcore.c: handle memory allocation error
Hamcore.c 284 warn V575 The potential null pointer is passed into 'memcpy' function. Inspect the first argument. Check lines: 284, 283.
Hamcore.c 287 warn V575 The potential null pointer is passed into 'memcpy' function. Inspect the first argument. Check lines: 287, 286.
Hamcore.c 235 warn V522 There might be dereferencing of a potential null pointer 'compressed_files'. Check lines: 235, 215.
Hamcore.c 236 warn V522 There might be dereferencing of a potential null pointer 'compressed_file'.
-rw-r--r-- | Hamcore.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -213,6 +213,10 @@ bool HamcoreBuild(const char *dst_path, const char *base_path, const char **src_ } COMPRESSED_FILE *compressed_files = calloc(num, sizeof(COMPRESSED_FILE)); + if (!compressed_files) + { + return false; + } void *buffer = NULL; size_t buffer_size = 0; @@ -277,9 +281,23 @@ bool HamcoreBuild(const char *dst_path, const char *base_path, const char **src_ const size_t path_size = strlen(relative_path) + 1; file->Path = malloc(path_size); + if (!file->Path) + { + free(compressed_files); + free(buffer); + return false; + } + memcpy(file->Path, relative_path, path_size); compressed_file->Data = malloc(file->Size); + if (!compressed_file->Data) + { + free(compressed_files); + free(buffer); + return false; + } + memcpy(compressed_file->Data, buffer, file->Size); } |