From f1eb8934930d0bb5e4f64ce24ca9971f0655c04f Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 9 May 2024 16:17:38 +0200 Subject: Proper strncpy null termination --- kms/client/kms_client.c | 4 ++-- kms/server/kms_server.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'kms') diff --git a/kms/client/kms_client.c b/kms/client/kms_client.c index 57c6ccf..1c8f634 100644 --- a/kms/client/kms_client.c +++ b/kms/client/kms_client.c @@ -127,7 +127,7 @@ static bool create_socket_path(char *output_path, size_t output_path_size) { return true; } -static void strncpy_safe(char *dst, const char *src, int len) { +static void string_copy(char *dst, const char *src, int len) { int src_len = strlen(src); int min_len = src_len; if(len - 1 < min_len) @@ -232,7 +232,7 @@ int gsr_kms_client_init(gsr_kms_client *self, const char *card_path) { } local_addr.sun_family = AF_UNIX; - strncpy_safe(local_addr.sun_path, self->initial_socket_path, sizeof(local_addr.sun_path)); + string_copy(local_addr.sun_path, self->initial_socket_path, sizeof(local_addr.sun_path)); const mode_t prev_mask = umask(0000); const int bind_res = bind(self->initial_socket_fd, (struct sockaddr*)&local_addr, sizeof(local_addr.sun_family) + strlen(local_addr.sun_path)); diff --git a/kms/server/kms_server.c b/kms/server/kms_server.c index 09deaab..2eaa1ed 100644 --- a/kms/server/kms_server.c +++ b/kms/server/kms_server.c @@ -379,7 +379,7 @@ static double clock_get_monotonic_seconds(void) { return (double)ts.tv_sec + (double)ts.tv_nsec * 0.000000001; } -static void strncpy_safe(char *dst, const char *src, int len) { +static void string_copy(char *dst, const char *src, int len) { int src_len = strlen(src); int min_len = src_len; if(len - 1 < min_len) @@ -444,7 +444,7 @@ int main(int argc, char **argv) { while(clock_get_monotonic_seconds() - start_time < connect_timeout_sec) { struct sockaddr_un remote_addr = {0}; remote_addr.sun_family = AF_UNIX; - strncpy_safe(remote_addr.sun_path, domain_socket_path, sizeof(remote_addr.sun_path)); + string_copy(remote_addr.sun_path, domain_socket_path, sizeof(remote_addr.sun_path)); // TODO: Check if parent disconnected if(connect(socket_fd, (struct sockaddr*)&remote_addr, sizeof(remote_addr.sun_family) + strlen(remote_addr.sun_path)) == -1) { if(errno == ECONNREFUSED || errno == ENOENT) { -- cgit v1.2.3