[PATCH ghau51/ghau40 v10 07/11] signal_info: only print context if it is available.

From: Richard Guy Briggs
Date: Mon Dec 21 2020 - 12:16:04 EST


Signed-off-by: Richard Guy Briggs <rgb@xxxxxxxxxx>
---
src/auditd-event.c | 20 +++++++++++++++-----
src/auditd-reconfig.c | 2 --
2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/src/auditd-event.c b/src/auditd-event.c
index e6b2a961f02b..800f4d83bc83 100644
--- a/src/auditd-event.c
+++ b/src/auditd-event.c
@@ -1323,13 +1323,16 @@ static void reconfigure(struct auditd_event *e)
const char *ctx = nconf->sender_ctx;
struct timeval tv;
char txt[MAX_AUDIT_MESSAGE_LENGTH];
+ int txt_len;
char date[40];
unsigned int seq_num;
int need_size_check = 0, need_reopen = 0, need_space_check = 0;

- snprintf(txt, sizeof(txt),
- "config change requested by pid=%d auid=%u subj=%s",
- pid, uid, ctx);
+ txt_len = snprintf(txt, sizeof(txt),
+ "config change requested by pid=%d auid=%u", pid, uid);
+ if (ctx)
+ snprintf(txt + txt_len, sizeof(txt) - txt_len,
+ " subj=%s", ctx);
audit_msg(LOG_NOTICE, "%s", txt);

/* Do the reconfiguring. These are done in a specific
@@ -1578,8 +1581,15 @@ static void reconfigure(struct auditd_event *e)

e->reply.type = AUDIT_DAEMON_CONFIG;
e->reply.len = snprintf(e->reply.msg.data, MAX_AUDIT_MESSAGE_LENGTH-2,
- "%s: op=reconfigure state=changed auid=%u pid=%d subj=%s res=success",
- date, uid, pid, ctx );
+ "%s: op=reconfigure state=changed auid=%u pid=%d",
+ date, uid, pid);
+ if (ctx)
+ e->reply.len += snprintf(e->reply.msg.data + e->reply.len,
+ MAX_AUDIT_MESSAGE_LENGTH-2 - e->reply.len,
+ " subj=%s", ctx);
+ e->reply.len += snprintf(e->reply.msg.data + e->reply.len,
+ MAX_AUDIT_MESSAGE_LENGTH-2 - e->reply.len,
+ " res=success");
e->reply.message = e->reply.msg.data;
free((char *)ctx);
}
diff --git a/src/auditd-reconfig.c b/src/auditd-reconfig.c
index f5b00e6d1dc7..1af402526c4e 100644
--- a/src/auditd-reconfig.c
+++ b/src/auditd-reconfig.c
@@ -106,8 +106,6 @@ static void *config_thread_main(void *arg)
if (e->reply.len > 24)
new_config.sender_ctx =
strdup(e->reply.signal_info->ctx);
- else
- new_config.sender_ctx = strdup("?");
memcpy(e->reply.msg.data, &new_config, sizeof(new_config));
e->reply.conf = (struct daemon_conf *)e->reply.msg.data;
e->reply.type = AUDIT_DAEMON_RECONFIG;
--
2.18.4