From 1d5435043a1a086c604a051bac3df8d8891bef2f Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Wed, 4 Jan 2023 16:03:35 -0600 Subject: [PATCH] roken: Move dead code in rk_getauxval() into #ifdefs --- lib/roken/getauxval.c | 14 +++++++++++--- lib/roken/test-auxval.c | 17 ++++++++--------- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/lib/roken/getauxval.c b/lib/roken/getauxval.c index f12bc932b..785b1618f 100644 --- a/lib/roken/getauxval.c +++ b/lib/roken/getauxval.c @@ -159,7 +159,6 @@ rk_getprocauxval(unsigned long type) ROKEN_LIB_FUNCTION unsigned long ROKEN_LIB_CALL rk_getauxval(unsigned long type) { - const auxv_t *a; #ifdef HAVE_GETAUXVAL #ifdef GETAUXVAL_SETS_ERRNO if (rk_injected_auxv) @@ -169,6 +168,7 @@ rk_getauxval(unsigned long type) unsigned long ret; unsigned long ret2; static int getauxval_sets_errno = -1; + const auxv_t *a; int save_errno = errno; if (rk_injected_auxv) @@ -212,13 +212,21 @@ rk_getauxval(unsigned long type) getauxval_sets_errno = 0; errno = save_errno; -#endif -#endif if ((a = rk_getauxv(type)) == NULL) { errno = ENOENT; return 0; } return a->a_un.a_val; +#endif +#else + const auxv_t *a; + + if ((a = rk_getauxv(type)) == NULL) { + errno = ENOENT; + return 0; + } + return a->a_un.a_val; +#endif } /** diff --git a/lib/roken/test-auxval.c b/lib/roken/test-auxval.c index 69ab35992..80ad9e085 100644 --- a/lib/roken/test-auxval.c +++ b/lib/roken/test-auxval.c @@ -47,20 +47,19 @@ static void check_secure_getenv(char **env) { size_t i; - char *v; + char *v, *p; for (i = 0; env[i] != NULL; i++) { - if (strchr(env[i], '=') == NULL) - continue; if ((v = strdup(env[i])) == NULL) err(1, "could not allocate copy of %s", env[i]); - *strchr(v, '=') = '\0'; - if (issuid() && rk_secure_getenv(v) != NULL) - err(1, "rk_secure_getenv() returned non-NULL when issuid()!"); - if (!issuid() && rk_secure_getenv(v) == NULL) - err(1, "rk_secure_getenv() returned NULL when !issuid()"); + if ((p = strchr(v, '='))) { + *p = '\0'; + if (issuid() && rk_secure_getenv(v) != NULL) + err(1, "rk_secure_getenv() returned non-NULL when issuid()!"); + if (!issuid() && rk_secure_getenv(v) == NULL) + err(1, "rk_secure_getenv() returned NULL when !issuid()"); + } free(v); - return; } }