diff --git a/audit.spec b/audit.spec index 2d7e97c..6864aec 100644 --- a/audit.spec +++ b/audit.spec @@ -2,7 +2,7 @@ Summary: User space tools for kernel auditing Name: audit Epoch: 1 Version: 3.1.2 -Release: 2 +Release: 3 License: GPLv2+ and LGPLv2+ URL: https://people.redhat.com/sgrubb/audit/ Source0: https://people.redhat.com/sgrubb/audit/%{name}-%{version}.tar.gz @@ -12,6 +12,20 @@ Patch0: bugfix-audit-support-armv7b.patch Patch1: bugfix-audit-userspace-missing-syscalls-for-aarm64.patch Patch2: bugfix-audit-reload-coredump.patch Patch3: audit-Add-sw64-architecture.patch +Patch4: backport-Solve-issue-363-by-moving-check-to-after-load_config.patch +Patch5: backport-first-part-of-NULL-pointer-checks.patch +Patch6: backport-second-part-of-NULL-pointer-checks.patch +Patch7: backport-last-part-of-NULL-pointer-checks.patch +Patch8: backport-Fixed-NULL-checks.patch +Patch9: backport-update-error-messages-in-NULL-Checks.patch +Patch10: backport-adding-the-file-descriptor-closure.patch +Patch11: backport-correcting-memcmp-args-in-check_rule_mismatch-functi.patch +Patch12: backport-Use-atomic_int-if-available-for-signal-related-flags.patch +Patch13: backport-Use-atomic_uint-if-available-for-signal-related-flag.patch +Patch14: backport-avoiding-of-NULL-pointers-dereference-366.patch +Patch15: backport-Cleanup-code-in-LRU.patch +Patch16: backport-Fix-memory-leaks.patch +Patch17: backport-fix-one-more-leak.patch BuildRequires: gcc swig libtool systemd kernel-headers >= 2.6.29 BuildRequires: openldap-devel krb5-devel libcap-ng-devel @@ -85,13 +99,9 @@ libauparse can be used by python3. %package_help %prep -%setup -n %{name}-%{version} -q +%autosetup -n %{name}-%{version} -p1 cp %{SOURCE1} . cp /usr/include/linux/audit.h lib/ -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 autoreconf -f -i %build @@ -359,6 +369,9 @@ fi %attr(644,root,root) %{_mandir}/man8/*.8.gz %changelog +* Tue May 28 2024 xuraoqing - 1:3.1.2-3 +- backport patches to fix bugs + * Thu Feb 1 2024 liyunfei - 1:3.1.2-2 - add clang compile support diff --git a/backport-Fixed-NULL-checks.patch b/backport-Fixed-NULL-checks.patch new file mode 100644 index 0000000..d188bf7 --- /dev/null +++ b/backport-Fixed-NULL-checks.patch @@ -0,0 +1,54 @@ +From 68131717821ee5c946fb561218551c98e46d7d06 Mon Sep 17 00:00:00 2001 +From: Yugend +Date: Tue, 19 Mar 2024 17:01:53 +0300 +Subject: [PATCH] Fixed NULL checks + +Conflict:NA +Reference:https://github.com/linux-audit/audit-userspace/commit/68131717821ee5c946fb561218551c98e46d7d06 + +--- + audisp/plugins/zos-remote/zos-remote-queue.c | 2 +- + auparse/auparse.c | 1 + + src/ausearch-lol.c | 1 + + 3 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/audisp/plugins/zos-remote/zos-remote-queue.c b/audisp/plugins/zos-remote/zos-remote-queue.c +index 47dd006e..f8019890 100644 +--- a/audisp/plugins/zos-remote/zos-remote-queue.c ++++ b/audisp/plugins/zos-remote/zos-remote-queue.c +@@ -131,7 +131,7 @@ void increase_queue_depth(unsigned int size) + + tmp_q = realloc(q, size * sizeof(BerElement *)); + if (tmp_q == NULL) { +- log_err("Memory allocation error");; ++ log_err("Memory allocation error");; + pthread_mutex_unlock(&queue_lock); + return; + } +diff --git a/auparse/auparse.c b/auparse/auparse.c +index 516ee8f1..e782058d 100644 +--- a/auparse/auparse.c ++++ b/auparse/auparse.c +@@ -116,6 +116,7 @@ static int setup_log_file_array(auparse_state_t *au) + if (!tmp) { + fprintf(stderr, "No memory\n"); + aup_free_config(&config); ++ free(filename); + return 1; + } + +diff --git a/src/ausearch-lol.c b/src/ausearch-lol.c +index c2140b7e..7562dc21 100644 +--- a/src/ausearch-lol.c ++++ b/src/ausearch-lol.c +@@ -49,6 +49,7 @@ void lol_create(lol *lo) + lo->array = (lolnode *)malloc(size); + if (lo->array == NULL) { + fprintf(stderr, "Memory allocation error"); ++ lo->limit = 0; + return; + } + memset(lo->array, 0, size); +-- +2.33.0 + diff --git a/backport-Solve-issue-363-by-moving-check-to-after-load_config.patch b/backport-Solve-issue-363-by-moving-check-to-after-load_config.patch new file mode 100644 index 0000000..3af513b --- /dev/null +++ b/backport-Solve-issue-363-by-moving-check-to-after-load_config.patch @@ -0,0 +1,62 @@ +From 0604569e79a5d1c76b32f15576e129e0b813659f Mon Sep 17 00:00:00 2001 +From: Steve Grubb +Date: Sun, 24 Mar 2024 13:06:59 -0400 +Subject: [PATCH] Solve issue #363 by moving check to after load_config + +Conflict:NA +Reference:https://github.com/linux-audit/audit-userspace/commit/0604569e79a5d1c76b32f15576e129e0b813659f + +--- + src/auditd.c | 29 +++++++++++++++-------------- + 1 file changed, 15 insertions(+), 14 deletions(-) + +diff --git a/src/auditd.c b/src/auditd.c +index e0fe9925..67ce06c0 100644 +--- a/src/auditd.c ++++ b/src/auditd.c +@@ -676,20 +676,6 @@ int main(int argc, char *argv[]) + } + session = audit_get_session(); + +-#ifndef DEBUG +- /* Make sure we can do our job. Containers may not give you +- * capabilities, so we revert to a uid check for that case. */ +- if (!audit_can_control()) { +- if (!config.local_events && geteuid() == 0) +- ; +- else { +- fprintf(stderr, +- "You must be root or have capabilities to run this program.\n"); +- return 4; +- } +- } +-#endif +- + /* Register sighandlers */ + sa.sa_flags = 0 ; + sigemptyset( &sa.sa_mask ) ; +@@ -717,6 +703,21 @@ int main(int argc, char *argv[]) + free_config(&config); + return 6; + } ++ ++#ifndef DEBUG ++ /* Make sure we can do our job. Containers may not give you ++ * capabilities, so we revert to a uid check for that case. */ ++ if (!audit_can_control()) { ++ if (!config.local_events && geteuid() == 0) ++ ; ++ else { ++ fprintf(stderr, ++ "You must be root or have capabilities to run this program.\n"); ++ return 4; ++ } ++ } ++#endif ++ + if (config.daemonize == D_FOREGROUND) + config.write_logs = 0; + +-- +2.33.0 + diff --git a/backport-adding-the-file-descriptor-closure.patch b/backport-adding-the-file-descriptor-closure.patch new file mode 100644 index 0000000..49d846a --- /dev/null +++ b/backport-adding-the-file-descriptor-closure.patch @@ -0,0 +1,27 @@ +From 5eef876b3eb2fa3348be6cd31bd651a98b164deb Mon Sep 17 00:00:00 2001 +From: Yugend +Date: Wed, 27 Mar 2024 17:34:33 +0300 +Subject: [PATCH] adding the file descriptor closure + +Conflict:NA +Reference:https://github.com/linux-audit/audit-userspace/commit/5eef876b3eb2fa3348be6cd31bd651a98b164deb + +--- + src/auditctl.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/auditctl.c b/src/auditctl.c +index 503b4e2b..7949d95c 100644 +--- a/src/auditctl.c ++++ b/src/auditctl.c +@@ -1393,6 +1393,7 @@ static int fileopt(const char *file) + fields = malloc(nf * sizeof(char *)); + if (fields == NULL) { + audit_msg(LOG_ERR, "Out of memory. Check %s file, %d line", __FILE__, __LINE__); ++ fclose(f); + return 1; + } + +-- +2.33.0 + diff --git a/backport-avoiding-of-NULL-pointers-dereference-366.patch b/backport-avoiding-of-NULL-pointers-dereference-366.patch new file mode 100644 index 0000000..9d630bf --- /dev/null +++ b/backport-avoiding-of-NULL-pointers-dereference-366.patch @@ -0,0 +1,41 @@ +From 4780cd1a790286213dda646f782fa7128fb092a9 Mon Sep 17 00:00:00 2001 +From: Yugend <77495782+Yugend@users.noreply.github.com> +Date: Sat, 4 May 2024 00:39:36 +0300 +Subject: [PATCH] avoiding of NULL pointers dereference (#366) + +Conflict:NA +Reference:https://github.com/linux-audit/audit-userspace/commit/4780cd1a790286213dda646f782fa7128fb092a9 + +--- + src/ausearch-parse.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/src/ausearch-parse.c b/src/ausearch-parse.c +index 1a5b047f..be57606b 100644 +--- a/src/ausearch-parse.c ++++ b/src/ausearch-parse.c +@@ -719,6 +719,10 @@ static int common_path_parser(search_items *s, char *path) + // append + snode sn; + sn.str = strdup(path); ++ if (sn.str == NULL) { ++ fprintf(stderr, "Out of memory. Check %s file, %d line\n", __FILE__, __LINE__); ++ return 8; ++ } + sn.key = NULL; + sn.hits = 1; + // Attempt to rebuild path if relative +@@ -1217,6 +1221,10 @@ skip: + saved = *term; + *term = 0; + s->hostname = strdup(str); ++ if (s->hostname == NULL) { ++ fprintf(stderr, "Out of memory. Check %s file, %d line\n", __FILE__, __LINE__); ++ return 33; ++ } + *term = saved; + + // Lets see if there is something more +-- +2.33.0 + diff --git a/backport-first-part-of-NULL-pointer-checks.patch b/backport-first-part-of-NULL-pointer-checks.patch new file mode 100644 index 0000000..f1aa160 --- /dev/null +++ b/backport-first-part-of-NULL-pointer-checks.patch @@ -0,0 +1,147 @@ +From b046de44454fa2616dbb8899f1b41d65ce876e33 Mon Sep 17 00:00:00 2001 +From: Yugend +Date: Fri, 15 Mar 2024 17:08:16 +0300 +Subject: [PATCH] first part of NULL pointer checks + +Conflict:NA +Reference:https://github.com/linux-audit/audit-userspace/commit/b046de44454fa2616dbb8899f1b41d65ce876e33 + +--- + audisp/audispd-llist.c | 3 +++ + auparse/auparse.c | 7 +++++++ + src/auditctl-llist.c | 3 +++ + src/auditctl.c | 5 +++++ + src/ausearch-avc.c | 3 +++ + src/ausearch-int.c | 3 +++ + src/ausearch-llist.c | 3 +++ + tools/aulastlog/aulastlog-llist.c | 3 +++ + 8 files changed, 30 insertions(+) + +diff --git a/audisp/audispd-llist.c b/audisp/audispd-llist.c +index c562a72a..c338327d 100644 +--- a/audisp/audispd-llist.c ++++ b/audisp/audispd-llist.c +@@ -74,6 +74,9 @@ void plist_append(conf_llist *l, plugin_conf_t *p) + lnode* newnode; + + newnode = malloc(sizeof(lnode)); ++ if (newnode == NULL) { ++ return; ++ } + + if (p) { + void *pp = malloc(sizeof(struct plugin_conf)); +diff --git a/auparse/auparse.c b/auparse/auparse.c +index e196373b..516ee8f1 100644 +--- a/auparse/auparse.c ++++ b/auparse/auparse.c +@@ -113,6 +113,11 @@ static int setup_log_file_array(auparse_state_t *au) + } + num--; + tmp = malloc((num+2)*sizeof(char *)); ++ if (!tmp) { ++ fprintf(stderr, "No memory\n"); ++ aup_free_config(&config); ++ return 1; ++ } + + /* Got it, now process logs from last to first */ + if (num > 0) +@@ -489,6 +494,8 @@ auparse_state_t *auparse_init(ausource_t source, const void *b) + if (access_ok(b)) + goto bad_exit; + tmp = malloc(2*sizeof(char *)); ++ if (tmp == NULL) ++ goto bad_exit; + tmp[0] = strdup(b); + tmp[1] = NULL; + au->source_list = tmp; +diff --git a/src/auditctl-llist.c b/src/auditctl-llist.c +index 182d88b5..0f81d4c8 100644 +--- a/src/auditctl-llist.c ++++ b/src/auditctl-llist.c +@@ -64,6 +64,9 @@ void list_append(llist *l, const struct audit_rule_data *r, size_t sz) + lnode* newnode; + + newnode = malloc(sizeof(lnode)); ++ if (newnode == NULL) { ++ return; ++ } + + if (r) { + void *rr = malloc(sz); +diff --git a/src/auditctl.c b/src/auditctl.c +index dac5118a..ee7e33c8 100644 +--- a/src/auditctl.c ++++ b/src/auditctl.c +@@ -1391,6 +1391,11 @@ static int fileopt(const char *file) + } + i = 0; + fields = malloc(nf * sizeof(char *)); ++ if (fields == NULL) { ++ audit_msg(LOG_ERR, "Memory allocation error"); ++ return 1; ++ } ++ + fields[i++] = "auditctl"; + fields[i++] = ptr; + while( (ptr=audit_strsplit(NULL)) && (i < nf-1)) { +diff --git a/src/ausearch-avc.c b/src/ausearch-avc.c +index 10d153f6..6aa98c70 100644 +--- a/src/ausearch-avc.c ++++ b/src/ausearch-avc.c +@@ -67,6 +67,9 @@ void alist_append(alist *l, anode *node) + anode* newnode; + + newnode = malloc(sizeof(anode)); ++ if (newnode == NULL) { ++ return; ++ } + + if (node->scontext) + newnode->scontext = node->scontext; +diff --git a/src/ausearch-int.c b/src/ausearch-int.c +index 718dacda..0e8b0ffe 100644 +--- a/src/ausearch-int.c ++++ b/src/ausearch-int.c +@@ -46,6 +46,9 @@ void ilist_append(ilist *l, int num, unsigned int hits, int aux) + int_node* newnode; + + newnode = malloc(sizeof(int_node)); ++ if (newnode == NULL) { ++ return; ++ } + + newnode->num = num; + newnode->hits = hits; +diff --git a/src/ausearch-llist.c b/src/ausearch-llist.c +index 0fa6f671..36fcae6d 100644 +--- a/src/ausearch-llist.c ++++ b/src/ausearch-llist.c +@@ -107,6 +107,9 @@ void list_append(llist *l, lnode *node) + lnode* newnode; + + newnode = malloc(sizeof(lnode)); ++ if (newnode == NULL) { ++ return; ++ } + + if (node->message) + newnode->message = node->message; +diff --git a/tools/aulastlog/aulastlog-llist.c b/tools/aulastlog/aulastlog-llist.c +index 84882ca8..779afb50 100644 +--- a/tools/aulastlog/aulastlog-llist.c ++++ b/tools/aulastlog/aulastlog-llist.c +@@ -46,6 +46,9 @@ void list_append(llist *l, lnode *node) + lnode* newnode; + + newnode = malloc(sizeof(lnode)); ++ if (newnode == NULL) { ++ return; ++ } + + newnode->sec = node->sec; + newnode->uid = node->uid; +-- +2.33.0 + diff --git a/backport-last-part-of-NULL-pointer-checks.patch b/backport-last-part-of-NULL-pointer-checks.patch new file mode 100644 index 0000000..585c8e6 --- /dev/null +++ b/backport-last-part-of-NULL-pointer-checks.patch @@ -0,0 +1,45 @@ +From 97f3c78b6b31126c1128927d9c85bb794a1efa17 Mon Sep 17 00:00:00 2001 +From: Yugend +Date: Fri, 15 Mar 2024 18:13:36 +0300 +Subject: [PATCH] last part of NULL pointer checks + +Conflict:NA +Reference:https://github.com/linux-audit/audit-userspace/commit/97f3c78b6b31126c1128927d9c85bb794a1efa17 + +--- + auparse/interpret.c | 3 +++ + src/ausearch-lookup.c | 4 ++++ + 2 files changed, 7 insertions(+) + +diff --git a/auparse/interpret.c b/auparse/interpret.c +index 12ae35e2..f6f39449 100644 +--- a/auparse/interpret.c ++++ b/auparse/interpret.c +@@ -420,6 +420,9 @@ int load_interpretation_list(const char *buffer) + il.cnt = 0; + + il.record = buf = strdup(buffer); ++ if (buf == NULL) { ++ goto err_out; ++ } + if (strncmp(buf, "SADDR=", 6) == 0) { + // We have SOCKADDR record. It has no other values. + // Handle it by itself. +diff --git a/src/ausearch-lookup.c b/src/ausearch-lookup.c +index bdcd7aaf..86239f39 100644 +--- a/src/ausearch-lookup.c ++++ b/src/ausearch-lookup.c +@@ -302,6 +302,10 @@ char *unescape(const char *buf) + return NULL; + + str = strndup(buf, ptr - buf); ++ if (str == NULL) { ++ fprintf(stderr, "Memory alocation error"); ++ return NULL; ++ } + + if (*buf == '(') + return str; +-- +2.33.0 + diff --git a/backport-second-part-of-NULL-pointer-checks.patch b/backport-second-part-of-NULL-pointer-checks.patch new file mode 100644 index 0000000..868286b --- /dev/null +++ b/backport-second-part-of-NULL-pointer-checks.patch @@ -0,0 +1,188 @@ +From 15d29a145ebe67cae52316871fcdedb5a19ce628 Mon Sep 17 00:00:00 2001 +From: Yugend +Date: Fri, 15 Mar 2024 18:00:54 +0300 +Subject: [PATCH] second part of NULL pointer checks + +Conflict:NA +Reference:https://github.com/linux-audit/audit-userspace/commit/15d29a145ebe67cae52316871fcdedb5a19ce628 + +--- + audisp/plugins/zos-remote/zos-remote-queue.c | 5 +++++ + audisp/queue.c | 5 +++++ + auparse/normalize-llist.c | 3 +++ + auparse/normalize.c | 9 +++++++++ + lib/gen_tables.c | 10 ++++++++-- + src/ausearch-lol.c | 12 ++++++++++++ + src/ausearch-nvpair.c | 3 +++ + src/ausearch-string.c | 3 +++ + 8 files changed, 48 insertions(+), 2 deletions(-) + +diff --git a/audisp/plugins/zos-remote/zos-remote-queue.c b/audisp/plugins/zos-remote/zos-remote-queue.c +index 37d91bd8..47dd006e 100644 +--- a/audisp/plugins/zos-remote/zos-remote-queue.c ++++ b/audisp/plugins/zos-remote/zos-remote-queue.c +@@ -130,6 +130,11 @@ void increase_queue_depth(unsigned int size) + void *tmp_q; + + tmp_q = realloc(q, size * sizeof(BerElement *)); ++ if (tmp_q == NULL) { ++ log_err("Memory allocation error");; ++ pthread_mutex_unlock(&queue_lock); ++ return; ++ } + q = tmp_q; + for (i=q_depth; inum = num; + newnode->data = data; +diff --git a/auparse/normalize.c b/auparse/normalize.c +index ae6e3d2d..58d28213 100644 +--- a/auparse/normalize.c ++++ b/auparse/normalize.c +@@ -1191,6 +1191,11 @@ static int normalize_compound(auparse_state_t *au) + if (f) { + const char *exe = auparse_interpret_field(au); + D.how = strdup(exe); ++ if (D.how == NULL) { ++ fprintf(stderr, "Memory allocation error"); ++ free((void *)syscall); ++ return 1; ++ } + if ((strncmp(D.how, "/usr/bin/python", 15) == 0) || + (strncmp(D.how, "/usr/bin/sh", 11) == 0) || + (strncmp(D.how, "/usr/bin/bash", 13) == 0) || +@@ -1999,6 +2004,10 @@ map: + if (f) { + const char *exe = auparse_interpret_field(au); + D.how = strdup(exe); ++ if (D.how == NULL) { ++ fprintf(stderr, "Memory allocation error"); ++ return 1; ++ } + if ((strncmp(D.how, "/usr/bin/python", 15) == 0) || + (strncmp(D.how, "/usr/bin/sh", 11) == 0) || + (strncmp(D.how, "/usr/bin/bash", 13) == 0) || +diff --git a/lib/gen_tables.c b/lib/gen_tables.c +index 3326759d..4ff233d0 100644 +--- a/lib/gen_tables.c ++++ b/lib/gen_tables.c +@@ -271,7 +271,10 @@ output_i2s(const char *prefix) + } + + unique_values = malloc(NUM_VALUES * sizeof(*unique_values)); +- assert(unique_values != NULL); ++ if (unique_values == NULL) { ++ fprintf(stderr, "Memory allocation error"); ++ abort(); ++ } + n = 0; + for (i = 0; i < NUM_VALUES; i++) { + if (n == 0 || unique_values[n - 1].val != values[i].val) { +@@ -351,7 +354,10 @@ output_i2s_transtab(const char *prefix) + printf("{%d,%zu},", values[i].val, values[i].s_offset); + } + uc_prefix = strdup(prefix); +- assert(uc_prefix != NULL); ++ if (uc_prefix == NULL) { ++ fprintf(stderr, "Memory allocation error"); ++ abort(); ++ } + for (i = 0; uc_prefix[i] != '\0'; i++) + uc_prefix[i] = toupper((unsigned char)uc_prefix[i]); + printf("\n" +diff --git a/src/ausearch-lol.c b/src/ausearch-lol.c +index bcfb9ad8..c2140b7e 100644 +--- a/src/ausearch-lol.c ++++ b/src/ausearch-lol.c +@@ -47,6 +47,10 @@ void lol_create(lol *lo) + lo->maxi = -1; + lo->limit = ARRAY_LIMIT; + lo->array = (lolnode *)malloc(size); ++ if (lo->array == NULL) { ++ fprintf(stderr, "Memory allocation error"); ++ return; ++ } + memset(lo->array, 0, size); + } + +@@ -305,6 +309,10 @@ int lol_add_record(lol *lo, char *buff) + n.a1 = 0L; + n.type = e.type; + n.message = strdup(buff); ++ if(n.message == NULL) { ++ fprintf(stderr, "Memory allocation error"); ++ return 0; ++ } + ptr = strchr(n.message, AUDIT_INTERP_SEPARATOR); + if (ptr) { + n.mlen = ptr - n.message; +@@ -359,6 +367,10 @@ int lol_add_record(lol *lo, char *buff) + + // Create new event and fill it in + l = malloc(sizeof(llist)); ++ if (l == NULL) { ++ fprintf(stderr, "Memory allocation error"); ++ return 0; ++ } + list_create(l); + l->e.milli = e.milli; + l->e.sec = e.sec; +diff --git a/src/ausearch-nvpair.c b/src/ausearch-nvpair.c +index 8d0088e5..c344c27c 100644 +--- a/src/ausearch-nvpair.c ++++ b/src/ausearch-nvpair.c +@@ -37,6 +37,9 @@ void search_list_create(nvlist *l) + void search_list_append(nvlist *l, nvnode *node) + { + nvnode* newnode = malloc(sizeof(nvnode)); ++ if (newnode == NULL) { ++ return; ++ } + + newnode->name = node->name; + newnode->val = node->val; +diff --git a/src/ausearch-string.c b/src/ausearch-string.c +index fbbacd77..f875bb2c 100644 +--- a/src/ausearch-string.c ++++ b/src/ausearch-string.c +@@ -49,6 +49,9 @@ void slist_append(slist *l, const snode *node) + snode* newnode; + + newnode = malloc(sizeof(snode)); ++ if (newnode == NULL) { ++ return; ++ } + + if (node->str) + newnode->str = node->str; +-- +2.33.0 + diff --git a/backport-update-error-messages-in-NULL-Checks.patch b/backport-update-error-messages-in-NULL-Checks.patch new file mode 100644 index 0000000..c3af044 --- /dev/null +++ b/backport-update-error-messages-in-NULL-Checks.patch @@ -0,0 +1,279 @@ +From dc7450f2fd056c7ca5eb29182ccb30ec0a4228c5 Mon Sep 17 00:00:00 2001 +From: Yugend +Date: Fri, 22 Mar 2024 14:01:59 +0300 +Subject: [PATCH] update error messages in NULL Checks + +Conflict:NA +Reference:https://github.com/linux-audit/audit-userspace/commit/dc7450f2fd056c7ca5eb29182ccb30ec0a4228c5 + +--- + audisp/audispd-llist.c | 1 + + audisp/plugins/zos-remote/zos-remote-queue.c | 2 +- + audisp/queue.c | 2 +- + auparse/auparse.c | 2 +- + auparse/normalize-llist.c | 1 + + auparse/normalize.c | 4 ++-- + lib/gen_tables.c | 4 ++-- + src/auditctl-llist.c | 1 + + src/auditctl.c | 2 +- + src/ausearch-avc.c | 1 + + src/ausearch-int.c | 1 + + src/ausearch-llist.c | 1 + + src/ausearch-lol.c | 6 +++--- + src/ausearch-lookup.c | 2 +- + src/ausearch-nvpair.c | 1 + + src/ausearch-string.c | 1 + + tools/aulastlog/aulastlog-llist.c | 1 + + 17 files changed, 21 insertions(+), 12 deletions(-) + +diff --git a/audisp/audispd-llist.c b/audisp/audispd-llist.c +index c338327d..30d7f03b 100644 +--- a/audisp/audispd-llist.c ++++ b/audisp/audispd-llist.c +@@ -75,6 +75,7 @@ void plist_append(conf_llist *l, plugin_conf_t *p) + + newnode = malloc(sizeof(lnode)); + if (newnode == NULL) { ++ printf("Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return; + } + +diff --git a/audisp/plugins/zos-remote/zos-remote-queue.c b/audisp/plugins/zos-remote/zos-remote-queue.c +index f8019890..67397f38 100644 +--- a/audisp/plugins/zos-remote/zos-remote-queue.c ++++ b/audisp/plugins/zos-remote/zos-remote-queue.c +@@ -131,7 +131,7 @@ void increase_queue_depth(unsigned int size) + + tmp_q = realloc(q, size * sizeof(BerElement *)); + if (tmp_q == NULL) { +- log_err("Memory allocation error");; ++ log_err("Out of memory. Check %s file, %d line", __FILE__, __LINE__); + pthread_mutex_unlock(&queue_lock); + return; + } +diff --git a/audisp/queue.c b/audisp/queue.c +index 76b62593..8bd20ea1 100644 +--- a/audisp/queue.c ++++ b/audisp/queue.c +@@ -230,7 +230,7 @@ void increase_queue_depth(unsigned int size) + + tmp_q = realloc(q, size * sizeof(event_t *)); + if (tmp_q == NULL) { +- fprintf(stderr, "Memory allocation error"); ++ fprintf(stderr, "Out of Memory. Check %s file, %d line", __FILE__, __LINE__); + pthread_mutex_unlock(&queue_lock); + return; + } +diff --git a/auparse/auparse.c b/auparse/auparse.c +index e782058d..c423ffa8 100644 +--- a/auparse/auparse.c ++++ b/auparse/auparse.c +@@ -114,7 +114,7 @@ static int setup_log_file_array(auparse_state_t *au) + num--; + tmp = malloc((num+2)*sizeof(char *)); + if (!tmp) { +- fprintf(stderr, "No memory\n"); ++ fprintf(stderr, "Out of memory. Check %s file, %d line", __FILE__, __LINE__); + aup_free_config(&config); + free(filename); + return 1; +diff --git a/auparse/normalize-llist.c b/auparse/normalize-llist.c +index 32d5f124..433c457f 100644 +--- a/auparse/normalize-llist.c ++++ b/auparse/normalize-llist.c +@@ -67,6 +67,7 @@ void cllist_append(cllist *l, uint32_t num, void *data) + + newnode = malloc(sizeof(data_node)); + if (newnode == NULL) { ++ printf("Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return; + } + +diff --git a/auparse/normalize.c b/auparse/normalize.c +index 58d28213..d4f6c441 100644 +--- a/auparse/normalize.c ++++ b/auparse/normalize.c +@@ -1192,7 +1192,7 @@ static int normalize_compound(auparse_state_t *au) + const char *exe = auparse_interpret_field(au); + D.how = strdup(exe); + if (D.how == NULL) { +- fprintf(stderr, "Memory allocation error"); ++ fprintf(stderr, "Out of memory. Check %s file, %d line", __FILE__, __LINE__); + free((void *)syscall); + return 1; + } +@@ -2005,7 +2005,7 @@ map: + const char *exe = auparse_interpret_field(au); + D.how = strdup(exe); + if (D.how == NULL) { +- fprintf(stderr, "Memory allocation error"); ++ fprintf(stderr, "Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return 1; + } + if ((strncmp(D.how, "/usr/bin/python", 15) == 0) || +diff --git a/lib/gen_tables.c b/lib/gen_tables.c +index 4ff233d0..a2930ff9 100644 +--- a/lib/gen_tables.c ++++ b/lib/gen_tables.c +@@ -272,7 +272,7 @@ output_i2s(const char *prefix) + + unique_values = malloc(NUM_VALUES * sizeof(*unique_values)); + if (unique_values == NULL) { +- fprintf(stderr, "Memory allocation error"); ++ fprintf(stderr, "Out of memory. Check %s file, %d line", __FILE__, __LINE__); + abort(); + } + n = 0; +@@ -355,7 +355,7 @@ output_i2s_transtab(const char *prefix) + } + uc_prefix = strdup(prefix); + if (uc_prefix == NULL) { +- fprintf(stderr, "Memory allocation error"); ++ fprintf(stderr, "Out of memory. Check %s file, %d line", __FILE__, __LINE__); + abort(); + } + for (i = 0; uc_prefix[i] != '\0'; i++) +diff --git a/src/auditctl-llist.c b/src/auditctl-llist.c +index 0f81d4c8..5282ee32 100644 +--- a/src/auditctl-llist.c ++++ b/src/auditctl-llist.c +@@ -65,6 +65,7 @@ void list_append(llist *l, const struct audit_rule_data *r, size_t sz) + + newnode = malloc(sizeof(lnode)); + if (newnode == NULL) { ++ printf("Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return; + } + +diff --git a/src/auditctl.c b/src/auditctl.c +index ee7e33c8..093dca00 100644 +--- a/src/auditctl.c ++++ b/src/auditctl.c +@@ -1392,7 +1392,7 @@ static int fileopt(const char *file) + i = 0; + fields = malloc(nf * sizeof(char *)); + if (fields == NULL) { +- audit_msg(LOG_ERR, "Memory allocation error"); ++ audit_msg(LOG_ERR, "Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return 1; + } + +diff --git a/src/ausearch-avc.c b/src/ausearch-avc.c +index 6aa98c70..38576563 100644 +--- a/src/ausearch-avc.c ++++ b/src/ausearch-avc.c +@@ -68,6 +68,7 @@ void alist_append(alist *l, anode *node) + + newnode = malloc(sizeof(anode)); + if (newnode == NULL) { ++ printf("Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return; + } + +diff --git a/src/ausearch-int.c b/src/ausearch-int.c +index 0e8b0ffe..5f57b059 100644 +--- a/src/ausearch-int.c ++++ b/src/ausearch-int.c +@@ -47,6 +47,7 @@ void ilist_append(ilist *l, int num, unsigned int hits, int aux) + + newnode = malloc(sizeof(int_node)); + if (newnode == NULL) { ++ printf("Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return; + } + +diff --git a/src/ausearch-llist.c b/src/ausearch-llist.c +index 36fcae6d..7926980c 100644 +--- a/src/ausearch-llist.c ++++ b/src/ausearch-llist.c +@@ -108,6 +108,7 @@ void list_append(llist *l, lnode *node) + + newnode = malloc(sizeof(lnode)); + if (newnode == NULL) { ++ printf("Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return; + } + +diff --git a/src/ausearch-lol.c b/src/ausearch-lol.c +index 7562dc21..a5418079 100644 +--- a/src/ausearch-lol.c ++++ b/src/ausearch-lol.c +@@ -48,7 +48,7 @@ void lol_create(lol *lo) + lo->limit = ARRAY_LIMIT; + lo->array = (lolnode *)malloc(size); + if (lo->array == NULL) { +- fprintf(stderr, "Memory allocation error"); ++ fprintf(stderr, "Out of memory. Check %s file, %d line", __FILE__, __LINE__); + lo->limit = 0; + return; + } +@@ -311,7 +311,7 @@ int lol_add_record(lol *lo, char *buff) + n.type = e.type; + n.message = strdup(buff); + if(n.message == NULL) { +- fprintf(stderr, "Memory allocation error"); ++ fprintf(stderr, "Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return 0; + } + ptr = strchr(n.message, AUDIT_INTERP_SEPARATOR); +@@ -369,7 +369,7 @@ int lol_add_record(lol *lo, char *buff) + // Create new event and fill it in + l = malloc(sizeof(llist)); + if (l == NULL) { +- fprintf(stderr, "Memory allocation error"); ++ fprintf(stderr, "Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return 0; + } + list_create(l); +diff --git a/src/ausearch-lookup.c b/src/ausearch-lookup.c +index 86239f39..2d6f48ca 100644 +--- a/src/ausearch-lookup.c ++++ b/src/ausearch-lookup.c +@@ -303,7 +303,7 @@ char *unescape(const char *buf) + + str = strndup(buf, ptr - buf); + if (str == NULL) { +- fprintf(stderr, "Memory alocation error"); ++ fprintf(stderr, "Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return NULL; + } + +diff --git a/src/ausearch-nvpair.c b/src/ausearch-nvpair.c +index c344c27c..3a1b27db 100644 +--- a/src/ausearch-nvpair.c ++++ b/src/ausearch-nvpair.c +@@ -38,6 +38,7 @@ void search_list_append(nvlist *l, nvnode *node) + { + nvnode* newnode = malloc(sizeof(nvnode)); + if (newnode == NULL) { ++ printf("Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return; + } + +diff --git a/src/ausearch-string.c b/src/ausearch-string.c +index f875bb2c..bd317b96 100644 +--- a/src/ausearch-string.c ++++ b/src/ausearch-string.c +@@ -50,6 +50,7 @@ void slist_append(slist *l, const snode *node) + + newnode = malloc(sizeof(snode)); + if (newnode == NULL) { ++ printf("Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return; + } + +diff --git a/tools/aulastlog/aulastlog-llist.c b/tools/aulastlog/aulastlog-llist.c +index 779afb50..0b89be65 100644 +--- a/tools/aulastlog/aulastlog-llist.c ++++ b/tools/aulastlog/aulastlog-llist.c +@@ -47,6 +47,7 @@ void list_append(llist *l, lnode *node) + + newnode = malloc(sizeof(lnode)); + if (newnode == NULL) { ++ printf("Out of memory. Check %s file, %d line", __FILE__, __LINE__); + return; + } + +-- +2.33.0 +