commit: 19e6ea25352f3905b3b737f333a01b9742495639
parent 57329cb47d3306caa2d8888356d8fbfa97fc86df
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date: Fri, 23 May 2025 20:11:41 +0200
Use `const char *` when possible
Diffstat:
5 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/common.c b/common.c
@@ -21,7 +21,7 @@ smin(size_t a, size_t b)
// Needs to be constant-time so the hash can't be guessed via using a rainbow-table
bool
-hash_match(char *a, char *b)
+hash_match(const char *a, const char *b)
{
/* flawfinder: ignore CWE-126 */
size_t len_a = strlen(a);
@@ -40,7 +40,7 @@ hash_match(char *a, char *b)
}
bool
-skeud_crypt_check(char *hash, char *password)
+skeud_crypt_check(const char *hash, const char *password)
{
if(!hash) return false;
if(strcmp(hash, "") == 0) return false;
diff --git a/common.h b/common.h
@@ -5,6 +5,6 @@
#include <sys/types.h> // ssize_t
size_t smin(size_t a, size_t b);
-bool hash_match(char *a, char *b);
-bool skeud_crypt_check(char *hash, char *password);
+bool hash_match(const char *a, const char *b);
+bool skeud_crypt_check(const char *hash, const char *password);
ssize_t skeud_getpass(char **password);
diff --git a/common_test.c b/common_test.c
@@ -50,8 +50,9 @@ ATF_TC_BODY(skeud_crypt_check_tc, tc)
ATF_CHECK(skeud_crypt_check("$5$8VryLuwDTzZ8MSZX$2UIaWB5LcMlhXv7UQIBcFeq8/Dr6PswXZP/SJ09L01B",
"foobar"));
// SHA512: openssl passwd -6 -noverify
- char *hash = "$6$QUEEGuX9dkGlNkTP$IJwcvb6tpm63hoOfm9QJjEgjte/OpcQS3S43zDN95G3diJ5Xc/OlhhbCkUyV/"
- "A0ARhgQj2D/4m/DWhwvvs3A91";
+ const char *hash =
+ "$6$QUEEGuX9dkGlNkTP$IJwcvb6tpm63hoOfm9QJjEgjte/OpcQS3S43zDN95G3diJ5Xc/OlhhbCkUyV/"
+ "A0ARhgQj2D/4m/DWhwvvs3A91";
ATF_CHECK(skeud_crypt_check(hash, "foobar"));
}
diff --git a/login.c b/login.c
@@ -37,7 +37,7 @@ main(int argc, char *argv[])
int c = EOF;
char *username = NULL;
struct passwd *pwent = NULL;
- char *shell = "/bin/sh";
+ const char *shell = "/bin/sh";
if(getuid() != 0)
{
diff --git a/su.c b/su.c
@@ -31,7 +31,7 @@ main(int argc, char *argv[])
bool opt_l = false;
bool opt_p = false;
int c = EOF;
- char *username = "root";
+ const char *username = "root";
struct passwd *pwent = NULL;
char *shell = NULL;
char *opt_cmd = NULL;
@@ -208,7 +208,7 @@ main(int argc, char *argv[])
perror("su: setuid");
}
- char *home = pwent->pw_dir ? pwent->pw_dir : "/";
+ const char *home = pwent->pw_dir ? pwent->pw_dir : "/";
setenv("HOME", home, 1);
if(opt_l)
{
@@ -223,8 +223,8 @@ main(int argc, char *argv[])
setenv("SHELL", shell, 1);
setenv("IFS", " \t\n", 1);
- int cmd_argc = 1;
- char *cmd_argv[2 + 1 + 2] = {shell, NULL};
+ int cmd_argc = 1;
+ const char *cmd_argv[2 + 1 + 2] = {shell, NULL};
if(opt_l)
{
@@ -242,7 +242,7 @@ main(int argc, char *argv[])
errno = 0;
/* flawfinder: ignore CWE-78 */
- int ret = execvp(shell, cmd_argv);
+ int ret = execvp(shell, (char **)cmd_argv);
if(ret < 0)
{
if(errno == ENOENT)