From 9a214c46e23195c48e687fee05d90e4aa355442d Mon Sep 17 00:00:00 2001 From: TapTap Date: Mon, 20 Jul 2026 21:24:44 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20memory=20safety=20=E2=80=94=20malloc=20N?= =?UTF-8?q?ULL=20checks,=20strcpy=E2=86=92memcpy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/shared/config.c | 1 + src/shared/file.c | 2 +- src/shared/metadata.c | 1 + src/shared/utils.c | 2 +- 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/shared/config.c b/src/shared/config.c index 8ae4c5e..5f4accf 100644 --- a/src/shared/config.c +++ b/src/shared/config.c @@ -14,6 +14,7 @@ Config* config_create(char* version, char* send_directory, char* receive_directo bool use_sendfile, unsigned long long chunk_size) { Config* config = malloc(sizeof(Config)); + if (config == NULL) return NULL; config->version = version; config->send_directory = send_directory; config->receive_root_directory = receive_directory; diff --git a/src/shared/file.c b/src/shared/file.c index 58b0455..4f25dc4 100644 --- a/src/shared/file.c +++ b/src/shared/file.c @@ -34,7 +34,7 @@ File* file_create(const char* path) { return NULL; } - strcpy(file->path, path); + memcpy(file->path, path, path_len + 1); file->data = data_create_reserve(0); if (file->data == NULL) { free(file->path); diff --git a/src/shared/metadata.c b/src/shared/metadata.c index 2564f7d..4056607 100644 --- a/src/shared/metadata.c +++ b/src/shared/metadata.c @@ -54,6 +54,7 @@ FileMetadata* metadata_from_buf(char** buf) { if (!present) return NULL; FileMetadata* m = malloc(sizeof(FileMetadata)); + if (m == NULL) return NULL; int32_t mode; memcpy(&mode, *buf, sizeof(mode)); *buf += sizeof(mode); diff --git a/src/shared/utils.c b/src/shared/utils.c index ad1e533..0f04a90 100644 --- a/src/shared/utils.c +++ b/src/shared/utils.c @@ -54,7 +54,7 @@ char* str_dup(const char* string) { if (string == NULL) return NULL; char* new_string = (char*)malloc(strlen(string) + 1); - strcpy(new_string, string); + memcpy(new_string, string, strlen(string) + 1); return new_string; }