Blob Blame History Raw
diff -ur audit-3.0.orig/src/aureport-options.c audit-3.0/src/aureport-options.c
--- audit-3.0.orig/src/aureport-options.c	2018-08-31 17:05:48.000000000 -0400
+++ audit-3.0/src/aureport-options.c	2018-12-06 19:31:26.945634371 -0500
@@ -85,7 +85,8 @@
 	R_AVCS, R_SYSCALLS, R_PIDS, R_EVENTS, R_ACCT_MODS,  
 	R_INTERPRET, R_HELP, R_ANOMALY, R_RESPONSE, R_SUMMARY_DET, R_CRYPTO,
 	R_MAC, R_FAILED, R_SUCCESS, R_ADD, R_DEL, R_AUTH, R_NODE, R_IN_LOGS,
-	R_KEYS, R_TTY, R_NO_CONFIG, R_COMM, R_VIRT, R_INTEG, R_ESCAPE };
+	R_KEYS, R_TTY, R_NO_CONFIG, R_COMM, R_VIRT, R_INTEG, R_ESCAPE,
+	R_DEBUG };
 
 static struct nv_pair optiontab[] = {
 	{ R_AUTH, "-au" },
@@ -98,6 +99,7 @@
 	{ R_CONFIGS, "--config" },
 	{ R_CRYPTO, "-cr" },
 	{ R_CRYPTO, "--crypto" },
+	{ R_DEBUG, "--debug" },
 	{ R_DEL, "--delete" },
 	{ R_EVENTS, "-e" },
 	{ R_EVENTS, "--event" },
@@ -731,6 +733,9 @@
 		case R_DEL:
 			event_conf_act = C_DEL;
 			break;
+		case R_DEBUG:
+			event_debug = 1;
+			break;
 		case R_IN_LOGS:
 			force_logs = 1;
 			break;
diff -ur audit-3.0.orig/src/ausearch-parse.c audit-3.0/src/ausearch-parse.c
--- audit-3.0.orig/src/ausearch-parse.c	2018-08-31 17:05:48.000000000 -0400
+++ audit-3.0/src/ausearch-parse.c	2018-12-06 19:31:26.945634371 -0500
@@ -102,7 +102,8 @@
 				ret = parse_path(n, s);
 				break;
 			case AUDIT_USER:
-			case AUDIT_FIRST_USER_MSG...AUDIT_LAST_USER_MSG:
+			case AUDIT_FIRST_USER_MSG...AUDIT_USER_END:
+			case AUDIT_USER_CHAUTHTOK...AUDIT_LAST_USER_MSG:
 			case AUDIT_FIRST_USER_MSG2...AUDIT_LAST_USER_MSG2:
 				ret = parse_user(n, s);
 				break;
@@ -136,6 +137,7 @@
 				avc_parse_path(n, s);
 				break;
 			case AUDIT_AVC:
+			case AUDIT_USER_AVC:
 				ret = parse_avc(n, s);
 				break;
 			case AUDIT_NETFILTER_PKT:
@@ -1867,6 +1869,20 @@
 		*term = ' ';
 	}
 
+	// User AVC's are not formatted like a kernel AVC
+	if (n->type == AUDIT_USER_AVC) {
+		rc = parse_user(n, s);
+		if (rc > 20)
+			rc = 0;
+		if (audit_avc_init(s) == 0) {
+			alist_append(s->avc, &an);
+		} else {
+			rc = 10;
+			goto err;
+		}
+		return rc;
+	}
+
 	// get pid
 	if (event_pid != -1) {
 		str = strstr(term, "pid=");
diff -urp audit-3.0.orig/src/ausearch-parse.c audit-3.0/src/ausearch-parse.c
--- audit-3.0.orig/src/ausearch-parse.c	2018-10-03 19:46:52.000000000 -0400
+++ audit-3.0/src/ausearch-parse.c	2018-12-08 15:48:54.350009208 -0500
@@ -1839,8 +1839,10 @@ static int parse_avc(const lnode *n, sea
 	if (str) {
 		str += 5;
 		term = strchr(str, '{');
-		if (term == NULL)
-			return 1;
+		if (term == NULL) {
+			term = n->message;
+			goto other_avc;
+		}
 		if (event_success != S_UNSET) {
 			*term = 0;
 			// FIXME. Do not override syscall success if already
@@ -1869,6 +1871,7 @@ static int parse_avc(const lnode *n, sea
 		*term = ' ';
 	}
 
+other_avc:
 	// User AVC's are not formatted like a kernel AVC
 	if (n->type == AUDIT_USER_AVC) {
 		rc = parse_user(n, s);