Avoid a -Wshadow warning on Solaris 9.

This commit is contained in:
Todd C. Miller
2022-10-07 11:00:17 -06:00
parent 0eb136d65c
commit 57b5ff8e8c
17 changed files with 383 additions and 372 deletions

View File

@@ -189,7 +189,7 @@ done:
}
static bool
add_key_value(struct json_container *json, const char *str)
add_key_value(struct json_container *jsonc, const char *str)
{
struct json_value json_value;
const char *cp, *errstr;
@@ -256,26 +256,26 @@ add_key_value(struct json_container *json, const char *str)
json_value.u.string = cp;
}
debug_return_bool(sudo_json_add_value(json, name, &json_value));
debug_return_bool(sudo_json_add_value(jsonc, name, &json_value));
}
static bool
add_array(struct json_container *json, const char *name, char * const * array)
add_array(struct json_container *jsonc, const char *name, char * const * array)
{
const char *cp;
struct json_value json_value;
debug_decl(add_array, SUDO_DEBUG_PLUGIN);
if (!sudo_json_open_array(json, name))
if (!sudo_json_open_array(jsonc, name))
debug_return_bool(false);
while ((cp = *array) != NULL) {
json_value.type = JSON_STRING;
json_value.u.string = cp;
if (!sudo_json_add_value(json, name, &json_value))
if (!sudo_json_add_value(jsonc, name, &json_value))
debug_return_bool(false);
array++;
}
if (!sudo_json_close_array(json))
if (!sudo_json_close_array(jsonc))
debug_return_bool(false);
debug_return_bool(true);
@@ -299,7 +299,7 @@ filter_key_value(const char *kv, const char * const * filter)
}
static bool
add_key_value_object(struct json_container *json, const char *name,
add_key_value_object(struct json_container *jsonc, const char *name,
char * const * array, const char * const * filter)
{
char * const *cur;
@@ -318,15 +318,15 @@ add_key_value_object(struct json_container *json, const char *name,
}
}
if (!empty) {
if (!sudo_json_open_object(json, name))
if (!sudo_json_open_object(jsonc, name))
goto bad;
for (cur = array; (cp = *cur) != NULL; cur++) {
if (filter_key_value(cp, filter))
continue;
if (!add_key_value(json, cp))
if (!add_key_value(jsonc, cp))
goto bad;
}
if (!sudo_json_close_object(json))
if (!sudo_json_close_object(jsonc))
goto bad;
}
@@ -336,7 +336,7 @@ bad:
}
static bool
add_timestamp(struct json_container *json, struct timespec *ts)
add_timestamp(struct json_container *jsonc, struct timespec *ts)
{
struct json_value json_value;
time_t secs = ts->tv_sec;
@@ -348,22 +348,22 @@ add_timestamp(struct json_container *json, struct timespec *ts)
if (gmtime_r(&secs, &gmt) == NULL)
debug_return_bool(false);
sudo_json_open_object(json, "timestamp");
sudo_json_open_object(jsonc, "timestamp");
json_value.type = JSON_NUMBER;
json_value.u.number = ts->tv_sec;
sudo_json_add_value(json, "seconds", &json_value);
sudo_json_add_value(jsonc, "seconds", &json_value);
json_value.type = JSON_NUMBER;
json_value.u.number = ts->tv_nsec;
sudo_json_add_value(json, "nanoseconds", &json_value);
sudo_json_add_value(jsonc, "nanoseconds", &json_value);
timebuf[sizeof(timebuf) - 1] = '\0';
len = strftime(timebuf, sizeof(timebuf), "%Y%m%d%H%M%SZ", &gmt);
if (len != 0 && timebuf[sizeof(timebuf) - 1] == '\0'){
json_value.type = JSON_STRING;
json_value.u.string = timebuf;
sudo_json_add_value(json, "iso8601", &json_value);
sudo_json_add_value(jsonc, "iso8601", &json_value);
}
timebuf[sizeof(timebuf) - 1] = '\0';
@@ -371,16 +371,16 @@ add_timestamp(struct json_container *json, struct timespec *ts)
if (len != 0 && timebuf[sizeof(timebuf) - 1] == '\0'){
json_value.type = JSON_STRING;
json_value.u.string = timebuf;
sudo_json_add_value(json, "localtime", &json_value);
sudo_json_add_value(jsonc, "localtime", &json_value);
}
sudo_json_close_object(json);
sudo_json_close_object(jsonc);
debug_return_bool(true);
}
static int
audit_write_json(struct json_container *json)
audit_write_json(struct json_container *jsonc)
{
struct stat sb;
int ret = -1;
@@ -410,7 +410,7 @@ audit_write_json(struct json_container *json)
goto done;
}
fputs(sudo_json_get_buf(json), state.log_fp);
fputs(sudo_json_get_buf(jsonc), state.log_fp);
fputs("\n}\n", state.log_fp);
fflush(state.log_fp);
(void)sudo_lock_file(fileno(state.log_fp), SUDO_UNLOCK);
@@ -426,7 +426,7 @@ done:
static int
audit_write_exit_record(int exit_status, int error)
{
struct json_container json;
struct json_container jsonc;
struct json_value json_value;
struct timespec now;
int ret = -1;
@@ -437,33 +437,33 @@ audit_write_exit_record(int exit_status, int error)
goto done;
}
if (!sudo_json_init(&json, 4, false, false))
if (!sudo_json_init(&jsonc, 4, false, false))
goto oom;
if (!sudo_json_open_object(&json, "exit"))
if (!sudo_json_open_object(&jsonc, "exit"))
goto oom;
/* Write UUID */
json_value.type = JSON_STRING;
json_value.u.string = state.uuid_str;
if (!sudo_json_add_value(&json, "uuid", &json_value))
if (!sudo_json_add_value(&jsonc, "uuid", &json_value))
goto oom;
/* Write time stamp */
if (!add_timestamp(&json, &now))
if (!add_timestamp(&jsonc, &now))
goto oom;
if (error != 0) {
/* Error executing command */
json_value.type = JSON_STRING;
json_value.u.string = strerror(error);
if (!sudo_json_add_value(&json, "error", &json_value))
if (!sudo_json_add_value(&jsonc, "error", &json_value))
goto oom;
} else {
if (WIFEXITED(exit_status)) {
/* Command exited normally. */
json_value.type = JSON_NUMBER;
json_value.u.number = WEXITSTATUS(exit_status);
if (!sudo_json_add_value(&json, "exit_value", &json_value))
if (!sudo_json_add_value(&jsonc, "exit_value", &json_value))
goto oom;
} else if (WIFSIGNALED(exit_status)) {
/* Command killed by signal. */
@@ -472,37 +472,37 @@ audit_write_exit_record(int exit_status, int error)
if (signo <= 0 || sig2str(signo, signame) == -1) {
json_value.type = JSON_NUMBER;
json_value.u.number = signo;
if (!sudo_json_add_value(&json, "signal", &json_value))
if (!sudo_json_add_value(&jsonc, "signal", &json_value))
goto oom;
} else {
json_value.type = JSON_STRING;
json_value.u.string = signame; // -V507
if (!sudo_json_add_value(&json, "signal", &json_value))
if (!sudo_json_add_value(&jsonc, "signal", &json_value))
goto oom;
}
/* Core dump? */
json_value.type = JSON_BOOL;
json_value.u.boolean = WCOREDUMP(exit_status);
if (!sudo_json_add_value(&json, "dumped_core", &json_value))
if (!sudo_json_add_value(&jsonc, "dumped_core", &json_value))
goto oom;
/* Exit value */
json_value.type = JSON_NUMBER;
json_value.u.number = WTERMSIG(exit_status) | 128;
if (!sudo_json_add_value(&json, "exit_value", &json_value))
if (!sudo_json_add_value(&jsonc, "exit_value", &json_value))
goto oom;
}
}
if (!sudo_json_close_object(&json))
if (!sudo_json_close_object(&jsonc))
goto oom;
ret = audit_write_json(&json);
sudo_json_free(&json);
ret = audit_write_json(&jsonc);
sudo_json_free(&jsonc);
done:
debug_return_int(ret);
oom:
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
sudo_json_free(&json);
sudo_json_free(&jsonc);
debug_return_int(-1);
}
@@ -511,7 +511,7 @@ audit_write_record(const char *audit_str, const char *plugin_name,
unsigned int plugin_type, const char *reason, char * const command_info[],
char * const run_argv[], char * const run_envp[])
{
struct json_container json;
struct json_container jsonc;
struct json_value json_value;
struct timespec now;
int ret = -1;
@@ -522,14 +522,14 @@ audit_write_record(const char *audit_str, const char *plugin_name,
goto done;
}
if (!sudo_json_init(&json, 4, false, false))
if (!sudo_json_init(&jsonc, 4, false, false))
goto oom;
if (!sudo_json_open_object(&json, audit_str))
if (!sudo_json_open_object(&jsonc, audit_str))
goto oom;
json_value.type = JSON_STRING;
json_value.u.string = plugin_name;
if (!sudo_json_add_value(&json, "plugin_name", &json_value))
if (!sudo_json_add_value(&jsonc, "plugin_name", &json_value))
goto oom;
switch (plugin_type) {
@@ -553,85 +553,85 @@ audit_write_record(const char *audit_str, const char *plugin_name,
break;
}
json_value.type = JSON_STRING;
if (!sudo_json_add_value(&json, "plugin_type", &json_value))
if (!sudo_json_add_value(&jsonc, "plugin_type", &json_value))
goto oom;
/* error and reject audit events usually contain a reason. */
if (reason != NULL) {
json_value.type = JSON_STRING;
json_value.u.string = reason;
if (!sudo_json_add_value(&json, "reason", &json_value))
if (!sudo_json_add_value(&jsonc, "reason", &json_value))
goto oom;
}
json_value.type = JSON_STRING;
json_value.u.string = state.uuid_str;
if (!sudo_json_add_value(&json, "uuid", &json_value))
if (!sudo_json_add_value(&jsonc, "uuid", &json_value))
goto oom;
if (!add_timestamp(&json, &now))
if (!add_timestamp(&jsonc, &now))
goto oom;
/* Write key=value objects. */
if (state.settings != NULL) {
if (!add_key_value_object(&json, "options", state.settings, settings_filter))
if (!add_key_value_object(&jsonc, "options", state.settings, settings_filter))
goto oom;
} else {
sudo_debug_printf(SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO,
"missing settings list");
}
if (state.user_info != NULL) {
if (!add_key_value_object(&json, "user_info", state.user_info, NULL))
if (!add_key_value_object(&jsonc, "user_info", state.user_info, NULL))
goto oom;
} else {
sudo_debug_printf(SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO,
"missing user_info list");
}
if (command_info != NULL) {
if (!add_key_value_object(&json, "command_info", command_info, NULL))
if (!add_key_value_object(&jsonc, "command_info", command_info, NULL))
goto oom;
}
/* Write submit_optind before submit_argv */
json_value.type = JSON_NUMBER;
json_value.u.number = state.submit_optind;
if (!sudo_json_add_value(&json, "submit_optind", &json_value))
if (!sudo_json_add_value(&jsonc, "submit_optind", &json_value))
goto oom;
if (state.submit_argv != NULL) {
if (!add_array(&json, "submit_argv", state.submit_argv))
if (!add_array(&jsonc, "submit_argv", state.submit_argv))
goto oom;
} else {
sudo_debug_printf(SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO,
"missing submit_argv array");
}
if (state.submit_envp != NULL) {
if (!add_array(&json, "submit_envp", state.submit_envp))
if (!add_array(&jsonc, "submit_envp", state.submit_envp))
goto oom;
} else {
sudo_debug_printf(SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO,
"missing submit_envp array");
}
if (run_argv != NULL) {
if (!add_array(&json, "run_argv", run_argv))
if (!add_array(&jsonc, "run_argv", run_argv))
goto oom;
}
if (run_envp != NULL) {
if (!add_array(&json, "run_envp", run_envp))
if (!add_array(&jsonc, "run_envp", run_envp))
goto oom;
}
if (!sudo_json_close_object(&json))
if (!sudo_json_close_object(&jsonc))
goto oom;
ret = audit_write_json(&json);
sudo_json_free(&json);
ret = audit_write_json(&jsonc);
sudo_json_free(&jsonc);
done:
debug_return_int(ret);
oom:
sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
sudo_json_free(&json);
sudo_json_free(&jsonc);
debug_return_int(-1);
}