From 8e4d3132305a982f9c809bf17cbef567f85deb0f Mon Sep 17 00:00:00 2001 From: Robert Schmid Date: Fri, 5 Jan 2024 09:56:30 +0100 Subject: [PATCH] Use strncpy --- examples/common/c/configfile.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/examples/common/c/configfile.c b/examples/common/c/configfile.c index ea5585a..dbf8c90 100644 --- a/examples/common/c/configfile.c +++ b/examples/common/c/configfile.c @@ -662,21 +662,24 @@ void config_setstd(struct RastaConfig *cfg) { cfg->values.tls.ca_cert_path = NULL; if (entr.type == DICTIONARY_STRING) { cfg->values.tls.ca_cert_path = malloc(MAX_DICTIONARY_STRING_LENGTH_BYTES); - strcpy(cfg->values.tls.ca_cert_path, entr.value.string.c); + strncpy(cfg->values.tls.ca_cert_path, entr.value.string.c, MAX_DICTIONARY_STRING_LENGTH_BYTES); + cfg->values.tls.ca_cert_path[MAX_DICTIONARY_STRING_LENGTH_BYTES] = '\0'; } entr = config_get(cfg, "RASTA_CERT_PATH"); cfg->values.tls.cert_path = NULL; if (entr.type == DICTIONARY_STRING) { cfg->values.tls.cert_path = malloc(MAX_DICTIONARY_STRING_LENGTH_BYTES); - strcpy(cfg->values.tls.cert_path, entr.value.string.c); + strncpy(cfg->values.tls.cert_path, entr.value.string.c, MAX_DICTIONARY_STRING_LENGTH_BYTES); + cfg->values.tls.cert_path[MAX_DICTIONARY_STRING_LENGTH_BYTES] = '\0'; } entr = config_get(cfg, "RASTA_KEY_PATH"); cfg->values.tls.key_path = NULL; if (entr.type == DICTIONARY_STRING) { cfg->values.tls.key_path = malloc(MAX_DICTIONARY_STRING_LENGTH_BYTES); - strcpy(cfg->values.tls.key_path, entr.value.string.c); + strncpy(cfg->values.tls.key_path, entr.value.string.c, MAX_DICTIONARY_STRING_LENGTH_BYTES); + cfg->values.tls.key_path[MAX_DICTIONARY_STRING_LENGTH_BYTES] = '\0'; } #ifdef ENABLE_TLS @@ -689,7 +692,8 @@ void config_setstd(struct RastaConfig *cfg) { cfg->values.tls.peer_tls_cert_path = NULL; if (entr.type == DICTIONARY_STRING) { cfg->values.tls.peer_tls_cert_path = malloc(MAX_DICTIONARY_STRING_LENGTH_BYTES); - strcpy(cfg->values.tls.peer_tls_cert_path, entr.value.string.c); + strncpy(cfg->values.tls.peer_tls_cert_path, entr.value.string.c, MAX_DICTIONARY_STRING_LENGTH_BYTES); + cfg->values.tls.peer_tls_cert_path[MAX_DICTIONARY_STRING_LENGTH_BYTES] = '\0'; } #endif