From a5d79fc230336ebde974984cb54ba6a1617ca3fb Mon Sep 17 00:00:00 2001 From: Dimitri Papadopoulos <3350651-DimitriPapadopoulos@users.noreply.gitlab.com> Date: Wed, 8 Dec 2021 22:37:51 +0100 Subject: [PATCH] Improve const char declarations Declare C string constants using array syntax, avoid pointer syntax when possible. They are different, the array syntax generates smaller, faster code. Also, const char[] should usually be static, again to avoid poor compilation and runtime performance where compilers tend to initialize the const declaration for every call instead of using .rodata for the string. Signed-off-by: Dimitri Papadopoulos <3350651-DimitriPapadopoulos@users.noreply.gitlab.com> --- src/auth/common.c | 7 +++---- src/auth/common.h | 6 +++--- src/isolate.c | 4 ++-- src/main-user.c | 2 +- tests/generate_oidc_test_data.c | 12 ++++++------ 5 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/auth/common.c b/src/auth/common.c index 3701c152..6f4d104c 100644 --- a/src/auth/common.c +++ b/src/auth/common.c @@ -20,7 +20,6 @@ #include #include -const char* pass_msg_second = "Please enter your challenge password."; -const char* pass_msg_failed = "Login failed.\nPlease enter your password."; -const char* pass_msg_otp = "Please enter your OTP password."; - +const char pass_msg_second[] = "Please enter your challenge password."; +const char pass_msg_failed[] = "Login failed.\nPlease enter your password."; +const char pass_msg_otp[] = "Please enter your OTP password."; diff --git a/src/auth/common.h b/src/auth/common.h index 472e9aa3..5e4540af 100644 --- a/src/auth/common.h +++ b/src/auth/common.h @@ -3,8 +3,8 @@ #define MAX_PASSWORD_TRIES 3 -extern const char* pass_msg_second; -extern const char* pass_msg_otp; -extern const char* pass_msg_failed; +extern const char pass_msg_second[]; +extern const char pass_msg_otp[]; +extern const char pass_msg_failed[]; #endif diff --git a/src/isolate.c b/src/isolate.c index fb131f84..bb86b277 100644 --- a/src/isolate.c +++ b/src/isolate.c @@ -89,8 +89,8 @@ void update_fd_limits(main_server_st * s, unsigned main) void set_self_oom_score_adj(main_server_st * s) { #ifdef __linux__ - const char proc_self_oom_adj_score_path[] = "/proc/self/oom_score_adj"; - const char oom_adj_score_value[] = "1000"; + static const char proc_self_oom_adj_score_path[] = "/proc/self/oom_score_adj"; + static const char oom_adj_score_value[] = "1000"; size_t written = 0; int fd; diff --git a/src/main-user.c b/src/main-user.c index 4b4d427e..72622cfb 100644 --- a/src/main-user.c +++ b/src/main-user.c @@ -62,7 +62,7 @@ typedef enum script_type_t { SCRIPT_DISCONNECT } script_type_t; -static const char *type_name[] = {"up", "host-update", "down"}; +static const char * const type_name[] = {"up", "host-update", "down"}; static void export_fw_info(main_server_st *s, struct proc_st* proc) { diff --git a/tests/generate_oidc_test_data.c b/tests/generate_oidc_test_data.c index 13d28b26..04c45458 100644 --- a/tests/generate_oidc_test_data.c +++ b/tests/generate_oidc_test_data.c @@ -258,13 +258,13 @@ void generate_config_files(const char *output_folder, cjose_jwk_t * key, int main(int argc, char **argv) { char working_directory[1024]; - const char audience[] = "SomeAudience"; - const char issuer[] = "SomeIssuer"; - const char user_name_claim[] = "preferred_user_name"; + static const char audience[] = "SomeAudience"; + static const char issuer[] = "SomeIssuer"; + static const char user_name_claim[] = "preferred_user_name"; char kid[64]; - const char user_name[] = "SomeUser"; - const char typ[] = "JWT"; - const char alg[] = "ES256"; + static const char user_name[] = "SomeUser"; + static const char typ[] = "JWT"; + static const char alg[] = "ES256"; time_t now = time(NULL); snprintf(kid, sizeof(kid), "key_%ld", now);