PERFORCE change 178772 for review

Efstratios Karatzas gpf at FreeBSD.org
Tue May 25 18:53:36 UTC 2010


http://p4web.freebsd.org/@@178772?ac=10

Change 178772 by gpf at gpf_desktop on 2010/05/25 18:52:59

	this is the change in userland code -praudit & openbsm lib-
	so that we may avoid printing user or group ids as local 
	because in some cases (such as NFS) this makes no sense.
	Instead, the actual numbers are printed.
	Added an option that does this job, 'c' in praudit.
	ps: c stands for credentials and the variable used is 
	'rawcred', couldn't find a better name :-D

Affected files ...

.. //depot/projects/soc2010/gpf_audit/freebsd/src/contrib/openbsm/bin/praudit/praudit.c#2 edit
.. //depot/projects/soc2010/gpf_audit/freebsd/src/contrib/openbsm/bsm/libbsm.h#2 edit
.. //depot/projects/soc2010/gpf_audit/freebsd/src/contrib/openbsm/libbsm/bsm_io.c#2 edit

Differences ...

==== //depot/projects/soc2010/gpf_audit/freebsd/src/contrib/openbsm/bin/praudit/praudit.c#2 (text) ====

@@ -50,6 +50,7 @@
 static char	*del = ",";	/* Default delimiter. */
 static int	 oneline = 0;
 static int	 raw = 0;
+static int	 rawcred = 0;
 static int	 shortfrm = 0;
 static int	 partial = 0;
 static int	 xml = 0;
@@ -93,10 +94,10 @@
 				break;
 			if (xml)
 				au_print_tok_xml(stdout, &tok, del, raw,
-				    shortfrm);
+				    shortfrm, rawcred);
 			else
 				au_print_tok(stdout, &tok, del, raw,
-				    shortfrm);
+				    shortfrm, rawcred);
 			bytesread += tok.len;
 			if (oneline) {
 				if (!xml)
@@ -121,6 +122,10 @@
 
 	while ((ch = getopt(argc, argv, "d:lprsx")) != -1) {
 		switch(ch) {
+		case 'c':
+			rawcred = 1;
+			break;
+
 		case 'd':
 			del = optarg;
 			break;
@@ -147,7 +152,7 @@
 
 		case 'x':
 			xml = 1;
-			break;
+			break;	
 
 		case '?':
 		default:

==== //depot/projects/soc2010/gpf_audit/freebsd/src/contrib/openbsm/bsm/libbsm.h#2 (text) ====

@@ -820,9 +820,9 @@
 int			 au_fetch_tok(tokenstr_t *tok, u_char *buf, int len);
 //XXX The following interface has different prototype from BSM
 void			 au_print_tok(FILE *outfp, tokenstr_t *tok,
-			    char *del, char raw, char sfrm);
+			    char *del, char raw, char sfrm, char rawcred);
 void			 au_print_tok_xml(FILE *outfp, tokenstr_t *tok,
-			    char *del, char raw, char sfrm);
+			    char *del, char raw, char sfrm, char rawcred);
 
 /* 
  * Functions relating to XML output.

==== //depot/projects/soc2010/gpf_audit/freebsd/src/contrib/openbsm/libbsm/bsm_io.c#2 (text) ====

@@ -587,12 +587,14 @@
  * Prints a user value.
  */
 static void
-print_user(FILE *fp, u_int32_t usr, char raw)
+print_user(FILE *fp, u_int32_t usr, char raw, char rawcred)
 {
 	struct passwd *pwent;
 
 	if (raw)
 		fprintf(fp, "%d", usr);
+	else if (rawcred)
+		fprintf(fp, "%d", usr);
 	else {
 		pwent = getpwuid(usr);
 		if (pwent != NULL)
@@ -606,12 +608,14 @@
  * Prints a group value.
  */
 static void
-print_group(FILE *fp, u_int32_t grp, char raw)
+print_group(FILE *fp, u_int32_t grp, char raw, char rawcred)
 {
 	struct group *grpent;
 
 	if (raw)
 		fprintf(fp, "%d", grp);
+	else if (rawcred)
+		fprintf(fp, "%d", grp);
 	else {
 		grpent = getgrgid(grp);
 		if (grpent != NULL)
@@ -1645,7 +1649,7 @@
 
 static void
 print_attr32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
-    __unused char sfrm, int xml)
+    __unused char sfrm, int xml, char rawcred)
 {
 
 	print_tok_type(fp, tok->id, "attribute", raw, xml);
@@ -1654,10 +1658,10 @@
 		print_4_bytes(fp, tok->tt.attr32.mode, "%o");
 		close_attr(fp);
 		open_attr(fp, "uid");
-		print_user(fp, tok->tt.attr32.uid, raw);
+		print_user(fp, tok->tt.attr32.uid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "gid");
-		print_group(fp, tok->tt.attr32.gid, raw);
+		print_group(fp, tok->tt.attr32.gid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "fsid");
 		print_4_bytes(fp, tok->tt.attr32.fsid, "%u");
@@ -1673,9 +1677,9 @@
 		print_delim(fp, del);
 		print_4_bytes(fp, tok->tt.attr32.mode, "%o");
 		print_delim(fp, del);
-		print_user(fp, tok->tt.attr32.uid, raw);
+		print_user(fp, tok->tt.attr32.uid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.attr32.gid, raw);
+		print_group(fp, tok->tt.attr32.gid, raw, rawcred);
 		print_delim(fp, del);
 		print_4_bytes(fp, tok->tt.attr32.fsid, "%u");
 		print_delim(fp, del);
@@ -1727,7 +1731,7 @@
 
 static void
 print_attr64_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
-    __unused char sfrm, int xml)
+    __unused char sfrm, int xml, char rawcred)
 {
 
 	print_tok_type(fp, tok->id, "attribute", raw, xml);
@@ -1736,10 +1740,10 @@
 		print_4_bytes(fp, tok->tt.attr64.mode, "%o");
 		close_attr(fp);
 		open_attr(fp, "uid");
-		print_user(fp, tok->tt.attr64.uid, raw);
+		print_user(fp, tok->tt.attr64.uid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "gid");
-		print_group(fp, tok->tt.attr64.gid, raw);
+		print_group(fp, tok->tt.attr64.gid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "fsid");
 		print_4_bytes(fp, tok->tt.attr64.fsid, "%u");
@@ -1755,9 +1759,9 @@
 		print_delim(fp, del);
 		print_4_bytes(fp, tok->tt.attr64.mode, "%o");
 		print_delim(fp, del);
-		print_user(fp, tok->tt.attr64.uid, raw);
+		print_user(fp, tok->tt.attr64.uid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.attr64.gid, raw);
+		print_group(fp, tok->tt.attr64.gid, raw, rawcred);
 		print_delim(fp, del);
 		print_4_bytes(fp, tok->tt.attr64.fsid, "%u");
 		print_delim(fp, del);
@@ -2010,7 +2014,7 @@
 
 static void
 print_newgroups_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
-    __unused char sfrm, int xml)
+    __unused char sfrm, int xml, char rawcred)
 {
 	int i;
 
@@ -2018,12 +2022,12 @@
 	for (i = 0; i < tok->tt.grps.no; i++) {
 		if (xml) {
 			fprintf(fp, "<gid>");
-			print_group(fp, tok->tt.grps.list[i], raw);
+			print_group(fp, tok->tt.grps.list[i], raw, rawcred);
 			fprintf(fp, "</gid>");
 			close_tag(fp, tok->id);
 		} else {
 			print_delim(fp, del);
-			print_group(fp, tok->tt.grps.list[i], raw);
+			print_group(fp, tok->tt.grps.list[i], raw, rawcred);
 		}
 	}
 }
@@ -2316,22 +2320,22 @@
 
 static void
 print_ipcperm_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
-    __unused char sfrm, int xml)
+    __unused char sfrm, int xml, char rawcred)
 {
 
 	print_tok_type(fp, tok->id, "IPC perm", raw, xml);
 	if (xml) {
 		open_attr(fp, "uid");
-		print_user(fp, tok->tt.ipcperm.uid, raw);
+		print_user(fp, tok->tt.ipcperm.uid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "gid");
-		print_group(fp, tok->tt.ipcperm.gid, raw);
+		print_group(fp, tok->tt.ipcperm.gid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "creator-uid");
-		print_user(fp, tok->tt.ipcperm.puid, raw);
+		print_user(fp, tok->tt.ipcperm.puid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "creator-gid");
-		print_group(fp, tok->tt.ipcperm.pgid, raw);
+		print_group(fp, tok->tt.ipcperm.pgid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "mode");
 		print_4_bytes(fp, tok->tt.ipcperm.mode, "%o");
@@ -2345,13 +2349,13 @@
 		close_tag(fp, tok->id);
 	} else {
 		print_delim(fp, del);
-		print_user(fp, tok->tt.ipcperm.uid, raw);
+		print_user(fp, tok->tt.ipcperm.uid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.ipcperm.gid, raw);
+		print_group(fp, tok->tt.ipcperm.gid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.ipcperm.puid, raw);
+		print_user(fp, tok->tt.ipcperm.puid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.ipcperm.pgid, raw);
+		print_group(fp, tok->tt.ipcperm.pgid, raw, rawcred);
 		print_delim(fp, del);
 		print_4_bytes(fp, tok->tt.ipcperm.mode, "%o");
 		print_delim(fp, del);
@@ -2528,25 +2532,25 @@
 
 static void
 print_process32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
-    __unused char sfrm, int xml)
+    __unused char sfrm, int xml, char rawcred)
 {
 
 	print_tok_type(fp, tok->id, "process", raw, xml);
 	if (xml) {
 		open_attr(fp, "audit-uid");
-		print_user(fp, tok->tt.proc32.auid, raw);
+		print_user(fp, tok->tt.proc32.auid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "uid");
-		print_user(fp, tok->tt.proc32.euid, raw);
+		print_user(fp, tok->tt.proc32.euid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "gid");
-		print_group(fp, tok->tt.proc32.egid, raw);
+		print_group(fp, tok->tt.proc32.egid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "ruid");
-		print_user(fp, tok->tt.proc32.ruid, raw);
+		print_user(fp, tok->tt.proc32.ruid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "rgid");
-		print_group(fp, tok->tt.proc32.rgid, raw);
+		print_group(fp, tok->tt.proc32.rgid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "pid");
 		print_4_bytes(fp, tok->tt.proc32.pid, "%u");
@@ -2561,15 +2565,15 @@
 		close_tag(fp, tok->id);
 	} else {
 		print_delim(fp, del);
-		print_user(fp, tok->tt.proc32.auid, raw);
+		print_user(fp, tok->tt.proc32.auid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.proc32.euid, raw);
+		print_user(fp, tok->tt.proc32.euid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.proc32.egid, raw);
+		print_group(fp, tok->tt.proc32.egid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.proc32.ruid, raw);
+		print_user(fp, tok->tt.proc32.ruid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.proc32.rgid, raw);
+		print_group(fp, tok->tt.proc32.rgid, raw, rawcred);
 		print_delim(fp, del);
 		print_4_bytes(fp, tok->tt.proc32.pid, "%u");
 		print_delim(fp, del);
@@ -2641,24 +2645,24 @@
 
 static void
 print_process64_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
-    __unused char sfrm, int xml)
+    __unused char sfrm, int xml, char rawcred)
 {
 	print_tok_type(fp, tok->id, "process", raw, xml);
 	if (xml) {
 		open_attr(fp, "audit-uid");
-		print_user(fp, tok->tt.proc64.auid, raw);
+		print_user(fp, tok->tt.proc64.auid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "uid");
-		print_user(fp, tok->tt.proc64.euid, raw);
+		print_user(fp, tok->tt.proc64.euid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "gid");
-		print_group(fp, tok->tt.proc64.egid, raw);
+		print_group(fp, tok->tt.proc64.egid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "ruid");
-		print_user(fp, tok->tt.proc64.ruid, raw);
+		print_user(fp, tok->tt.proc64.ruid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "rgid");
-		print_group(fp, tok->tt.proc64.rgid, raw);
+		print_group(fp, tok->tt.proc64.rgid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "pid");
 		print_4_bytes(fp, tok->tt.proc64.pid, "%u");
@@ -2673,15 +2677,15 @@
 		close_tag(fp, tok->id);
 	} else {
 		print_delim(fp, del);
-		print_user(fp, tok->tt.proc64.auid, raw);
+		print_user(fp, tok->tt.proc64.auid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.proc64.euid, raw);
+		print_user(fp, tok->tt.proc64.euid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.proc64.egid, raw);
+		print_group(fp, tok->tt.proc64.egid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.proc64.ruid, raw);
+		print_user(fp, tok->tt.proc64.ruid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.proc64.rgid, raw);
+		print_group(fp, tok->tt.proc64.rgid, raw, rawcred);
 		print_delim(fp, del);
 		print_4_bytes(fp, tok->tt.proc64.pid, "%u");
 		print_delim(fp, del);
@@ -2768,25 +2772,25 @@
 
 static void
 print_process32ex_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
-    __unused char sfrm, int xml)
+    __unused char sfrm, int xml, char rawcred)
 {
 
 	print_tok_type(fp, tok->id, "process_ex", raw, xml);
 	if (xml) {
 		open_attr(fp, "audit-uid");
-		print_user(fp, tok->tt.proc32_ex.auid, raw);
+		print_user(fp, tok->tt.proc32_ex.auid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "uid");
-		print_user(fp, tok->tt.proc32_ex.euid, raw);
+		print_user(fp, tok->tt.proc32_ex.euid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "gid");
-		print_group(fp, tok->tt.proc32_ex.egid, raw);
+		print_group(fp, tok->tt.proc32_ex.egid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "ruid");
-		print_user(fp, tok->tt.proc32_ex.ruid, raw);
+		print_user(fp, tok->tt.proc32_ex.ruid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "rgid");
-		print_group(fp, tok->tt.proc32_ex.rgid, raw);
+		print_group(fp, tok->tt.proc32_ex.rgid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "pid");
 		print_4_bytes(fp, tok->tt.proc32_ex.pid, "%u");
@@ -2802,15 +2806,15 @@
 		close_tag(fp, tok->id);
 	} else {
 		print_delim(fp, del);
-		print_user(fp, tok->tt.proc32_ex.auid, raw);
+		print_user(fp, tok->tt.proc32_ex.auid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.proc32_ex.euid, raw);
+		print_user(fp, tok->tt.proc32_ex.euid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.proc32_ex.egid, raw);
+		print_group(fp, tok->tt.proc32_ex.egid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.proc32_ex.ruid, raw);
+		print_user(fp, tok->tt.proc32_ex.ruid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.proc32_ex.rgid, raw);
+		print_group(fp, tok->tt.proc32_ex.rgid, raw, rawcred);
 		print_delim(fp, del);
 		print_4_bytes(fp, tok->tt.proc32_ex.pid, "%u");
 		print_delim(fp, del);
@@ -2898,24 +2902,24 @@
 
 static void
 print_process64ex_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
-    __unused char sfrm, int xml)
+    __unused char sfrm, int xml, char rawcred)
 {
 	print_tok_type(fp, tok->id, "process_ex", raw, xml);
 	if (xml) {
 		open_attr(fp, "audit-uid");
-		print_user(fp, tok->tt.proc64_ex.auid, raw);
+		print_user(fp, tok->tt.proc64_ex.auid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "uid");
-		print_user(fp, tok->tt.proc64_ex.euid, raw);
+		print_user(fp, tok->tt.proc64_ex.euid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "gid");
-		print_group(fp, tok->tt.proc64_ex.egid, raw);
+		print_group(fp, tok->tt.proc64_ex.egid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "ruid");
-		print_user(fp, tok->tt.proc64_ex.ruid, raw);
+		print_user(fp, tok->tt.proc64_ex.ruid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "rgid");
-		print_group(fp, tok->tt.proc64_ex.rgid, raw);
+		print_group(fp, tok->tt.proc64_ex.rgid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "pid");
 		print_4_bytes(fp, tok->tt.proc64_ex.pid, "%u");
@@ -2931,15 +2935,15 @@
 		close_tag(fp, tok->id);
 	} else {
 		print_delim(fp, del);
-		print_user(fp, tok->tt.proc64_ex.auid, raw);
+		print_user(fp, tok->tt.proc64_ex.auid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.proc64_ex.euid, raw);
+		print_user(fp, tok->tt.proc64_ex.euid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.proc64_ex.egid, raw);
+		print_group(fp, tok->tt.proc64_ex.egid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.proc64_ex.ruid, raw);
+		print_user(fp, tok->tt.proc64_ex.ruid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.proc64_ex.rgid, raw);
+		print_group(fp, tok->tt.proc64_ex.rgid, raw, rawcred);
 		print_delim(fp, del);
 		print_4_bytes(fp, tok->tt.proc64_ex.pid, "%u");
 		print_delim(fp, del);
@@ -3362,25 +3366,25 @@
 
 static void
 print_subject32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
-    __unused char sfrm, int xml)
+    __unused char sfrm, int xml, char rawcred)
 {
 
 	print_tok_type(fp, tok->id, "subject", raw, xml);
 	if (xml) {
 		open_attr(fp, "audit-uid");
-		print_user(fp, tok->tt.subj32.auid, raw);
+		print_user(fp, tok->tt.subj32.auid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "uid");
-		print_user(fp, tok->tt.subj32.euid, raw);
+		print_user(fp, tok->tt.subj32.euid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "gid");
-		print_group(fp, tok->tt.subj32.egid, raw);
+		print_group(fp, tok->tt.subj32.egid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "ruid");
-		print_user(fp, tok->tt.subj32.ruid, raw);
+		print_user(fp, tok->tt.subj32.ruid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "rgid");
-		print_group(fp, tok->tt.subj32.rgid, raw);
+		print_group(fp, tok->tt.subj32.rgid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp,"pid");
 		print_4_bytes(fp, tok->tt.subj32.pid, "%u");
@@ -3395,15 +3399,15 @@
 		close_tag(fp, tok->id);
 	} else {
 		print_delim(fp, del);
-		print_user(fp, tok->tt.subj32.auid, raw);
+		print_user(fp, tok->tt.subj32.auid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.subj32.euid, raw);
+		print_user(fp, tok->tt.subj32.euid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.subj32.egid, raw);
+		print_group(fp, tok->tt.subj32.egid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.subj32.ruid, raw);
+		print_user(fp, tok->tt.subj32.ruid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.subj32.rgid, raw);
+		print_group(fp, tok->tt.subj32.rgid, raw, rawcred);
 		print_delim(fp, del);
 		print_4_bytes(fp, tok->tt.subj32.pid, "%u");
 		print_delim(fp, del);
@@ -3474,25 +3478,25 @@
 
 static void
 print_subject64_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
-    __unused char sfrm, int xml)
+    __unused char sfrm, int xml, char rawcred)
 {
 
 	print_tok_type(fp, tok->id, "subject", raw, xml);
 	if (xml) {
 		open_attr(fp, "audit-uid");
-		print_user(fp, tok->tt.subj64.auid, raw);
+		print_user(fp, tok->tt.subj64.auid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "uid");
-		print_user(fp, tok->tt.subj64.euid, raw);
+		print_user(fp, tok->tt.subj64.euid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "gid");
-		print_group(fp, tok->tt.subj64.egid, raw);
+		print_group(fp, tok->tt.subj64.egid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "ruid");
-		print_user(fp, tok->tt.subj64.ruid, raw);
+		print_user(fp, tok->tt.subj64.ruid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "rgid");
-		print_group(fp, tok->tt.subj64.rgid, raw);
+		print_group(fp, tok->tt.subj64.rgid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "pid");
 		print_4_bytes(fp, tok->tt.subj64.pid, "%u");
@@ -3507,15 +3511,15 @@
 		close_tag(fp, tok->id);
 	} else {
 		print_delim(fp, del);
-		print_user(fp, tok->tt.subj64.auid, raw);
+		print_user(fp, tok->tt.subj64.auid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.subj64.euid, raw);
+		print_user(fp, tok->tt.subj64.euid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.subj64.egid, raw);
+		print_group(fp, tok->tt.subj64.egid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.subj64.ruid, raw);
+		print_user(fp, tok->tt.subj64.ruid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.subj64.rgid, raw);
+		print_group(fp, tok->tt.subj64.rgid, raw, rawcred);
 		print_delim(fp, del);
 		print_4_bytes(fp, tok->tt.subj64.pid, "%u");
 		print_delim(fp, del);
@@ -3601,25 +3605,25 @@
 
 static void
 print_subject32ex_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
-    __unused char sfrm, int xml)
+    __unused char sfrm, int xml, char rawcred)
 {
 
 	print_tok_type(fp, tok->id, "subject_ex", raw, xml);
 	if (xml) {
 		open_attr(fp, "audit-uid");
-		print_user(fp, tok->tt.subj32_ex.auid, raw);
+		print_user(fp, tok->tt.subj32_ex.auid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "uid");
-		print_user(fp, tok->tt.subj32_ex.euid, raw);
+		print_user(fp, tok->tt.subj32_ex.euid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "gid");
-		print_group(fp, tok->tt.subj32_ex.egid, raw);
+		print_group(fp, tok->tt.subj32_ex.egid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "ruid");
-		print_user(fp, tok->tt.subj32_ex.ruid, raw);
+		print_user(fp, tok->tt.subj32_ex.ruid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "rgid");
-		print_group(fp, tok->tt.subj32_ex.rgid, raw);
+		print_group(fp, tok->tt.subj32_ex.rgid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "pid");
 		print_4_bytes(fp, tok->tt.subj32_ex.pid, "%u");
@@ -3635,15 +3639,15 @@
 		close_tag(fp, tok->id);
 	} else {
 		print_delim(fp, del);
-		print_user(fp, tok->tt.subj32_ex.auid, raw);
+		print_user(fp, tok->tt.subj32_ex.auid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.subj32_ex.euid, raw);
+		print_user(fp, tok->tt.subj32_ex.euid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.subj32_ex.egid, raw);
+		print_group(fp, tok->tt.subj32_ex.egid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.subj32_ex.ruid, raw);
+		print_user(fp, tok->tt.subj32_ex.ruid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.subj32_ex.rgid, raw);
+		print_group(fp, tok->tt.subj32_ex.rgid, raw, rawcred);
 		print_delim(fp, del);
 		print_4_bytes(fp, tok->tt.subj32_ex.pid, "%u");
 		print_delim(fp, del);
@@ -3730,24 +3734,24 @@
 
 static void
 print_subject64ex_tok(FILE *fp, tokenstr_t *tok, char *del, char raw,
-    __unused char sfrm, int xml)
+    __unused char sfrm, int xml, char rawcred)
 {
 	print_tok_type(fp, tok->id, "subject_ex", raw, xml);
 	if (xml) {
 		open_attr(fp, "audit-uid");
-		print_user(fp, tok->tt.subj64_ex.auid, raw);
+		print_user(fp, tok->tt.subj64_ex.auid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "uid");
-		print_user(fp, tok->tt.subj64_ex.euid, raw);
+		print_user(fp, tok->tt.subj64_ex.euid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "gid");
-		print_group(fp, tok->tt.subj64_ex.egid, raw);
+		print_group(fp, tok->tt.subj64_ex.egid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "ruid");
-		print_user(fp, tok->tt.subj64_ex.ruid, raw);
+		print_user(fp, tok->tt.subj64_ex.ruid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "rgid");
-		print_group(fp, tok->tt.subj64_ex.rgid, raw);
+		print_group(fp, tok->tt.subj64_ex.rgid, raw, rawcred);
 		close_attr(fp);
 		open_attr(fp, "pid");
 		print_4_bytes(fp, tok->tt.subj64_ex.pid, "%u");
@@ -3763,15 +3767,15 @@
 		close_tag(fp, tok->id);
 	} else {
 		print_delim(fp, del);
-		print_user(fp, tok->tt.subj64_ex.auid, raw);
+		print_user(fp, tok->tt.subj64_ex.auid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.subj64_ex.euid, raw);
+		print_user(fp, tok->tt.subj64_ex.euid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.subj64_ex.egid, raw);
+		print_group(fp, tok->tt.subj64_ex.egid, raw, rawcred);
 		print_delim(fp, del);
-		print_user(fp, tok->tt.subj64_ex.ruid, raw);
+		print_user(fp, tok->tt.subj64_ex.ruid, raw, rawcred);
 		print_delim(fp, del);
-		print_group(fp, tok->tt.subj64_ex.rgid, raw);
+		print_group(fp, tok->tt.subj64_ex.rgid, raw, rawcred);
 		print_delim(fp, del);
 		print_4_bytes(fp, tok->tt.subj64_ex.pid, "%u");
 		print_delim(fp, del);
@@ -4161,7 +4165,7 @@
  * 'prints' the token out to outfp.
  */
 void
-au_print_tok(FILE *outfp, tokenstr_t *tok, char *del, char raw, char sfrm)
+au_print_tok(FILE *outfp, tokenstr_t *tok, char *del, char raw, char sfrm, char rawcred)
 {
 
 	switch(tok->id) {
@@ -4198,11 +4202,11 @@
 		return;
 
 	case AUT_ATTR32:
-		print_attr32_tok(outfp, tok, del, raw, sfrm, AU_PLAIN);
+		print_attr32_tok(outfp, tok, del, raw, sfrm, AU_PLAIN, rawcred);
 		return;
 
 	case AUT_ATTR64:
-		print_attr64_tok(outfp, tok, del, raw, sfrm, AU_PLAIN);
+		print_attr64_tok(outfp, tok, del, raw, sfrm, AU_PLAIN, rawcred);
 		return;
 
 	case AUT_EXIT:
@@ -4222,7 +4226,7 @@
 		return;
 
 	case AUT_NEWGROUPS:
-		print_newgroups_tok(outfp, tok, del, raw, sfrm, AU_PLAIN);
+		print_newgroups_tok(outfp, tok, del, raw, sfrm, AU_PLAIN, rawcred);
 		return;
 
 	case AUT_IN_ADDR:
@@ -4242,7 +4246,7 @@
 		return;
 
 	case AUT_IPC_PERM:
-		print_ipcperm_tok(outfp, tok, del, raw, sfrm, AU_PLAIN);
+		print_ipcperm_tok(outfp, tok, del, raw, sfrm, AU_PLAIN, rawcred);
 		return;
 
 	case AUT_IPORT:
@@ -4258,19 +4262,19 @@
 		return;
 
 	case AUT_PROCESS32:
-		print_process32_tok(outfp, tok, del, raw, sfrm, AU_PLAIN);
+		print_process32_tok(outfp, tok, del, raw, sfrm, AU_PLAIN, rawcred);
 		return;
 
 	case AUT_PROCESS32_EX:
-		print_process32ex_tok(outfp, tok, del, raw, sfrm, AU_PLAIN);
+		print_process32ex_tok(outfp, tok, del, raw, sfrm, AU_PLAIN, rawcred);
 		return;
 
 	case AUT_PROCESS64:
-		print_process64_tok(outfp, tok, del, raw, sfrm, AU_PLAIN);
+		print_process64_tok(outfp, tok, del, raw, sfrm, AU_PLAIN, rawcred);
 		return;
 
 	case AUT_PROCESS64_EX:
-		print_process64ex_tok(outfp, tok, del, raw, sfrm, AU_PLAIN);
+		print_process64ex_tok(outfp, tok, del, raw, sfrm, AU_PLAIN, rawcred);
 		return;
 
 	case AUT_RETURN32:
@@ -4302,19 +4306,19 @@
 		return;
 
 	case AUT_SUBJECT32:
-		print_subject32_tok(outfp, tok, del, raw, sfrm, AU_PLAIN);
+		print_subject32_tok(outfp, tok, del, raw, sfrm, AU_PLAIN, rawcred);
 		return;
 
 	case AUT_SUBJECT64:
-		print_subject64_tok(outfp, tok, del, raw, sfrm, AU_PLAIN);
+		print_subject64_tok(outfp, tok, del, raw, sfrm, AU_PLAIN, rawcred);
 		return;
 
 	case AUT_SUBJECT32_EX:
-		print_subject32ex_tok(outfp, tok, del, raw, sfrm, AU_PLAIN);
+		print_subject32ex_tok(outfp, tok, del, raw, sfrm, AU_PLAIN, rawcred);
 		return;
 
 	case AUT_SUBJECT64_EX:
-		print_subject64ex_tok(outfp, tok, del, raw, sfrm, AU_PLAIN);
+		print_subject64ex_tok(outfp, tok, del, raw, sfrm, AU_PLAIN, rawcred);
 		return;
 
 	case AUT_TEXT:
@@ -4339,7 +4343,7 @@
  */
 void
 au_print_tok_xml(FILE *outfp, tokenstr_t *tok, char *del, char raw,
-    char sfrm)
+    char sfrm, char rawcred)
 {
 
 	switch(tok->id) {
@@ -4376,11 +4380,11 @@
 		return;
 
 	case AUT_ATTR32:
-		print_attr32_tok(outfp, tok, del, raw, sfrm, AU_XML);
+		print_attr32_tok(outfp, tok, del, raw, sfrm, AU_XML, rawcred);
 		return;
 
 	case AUT_ATTR64:
-		print_attr64_tok(outfp, tok, del, raw, sfrm, AU_XML);
+		print_attr64_tok(outfp, tok, del, raw, sfrm, AU_XML, rawcred);
 		return;
 
 	case AUT_EXIT:
@@ -4400,7 +4404,7 @@
 		return;
 
 	case AUT_NEWGROUPS:
-		print_newgroups_tok(outfp, tok, del, raw, sfrm, AU_XML);
+		print_newgroups_tok(outfp, tok, del, raw, sfrm, AU_XML, rawcred);
 		return;
 
 	case AUT_IN_ADDR:
@@ -4420,7 +4424,7 @@
 		return;
 
 	case AUT_IPC_PERM:
-		print_ipcperm_tok(outfp, tok, del, raw, sfrm, AU_XML);
+		print_ipcperm_tok(outfp, tok, del, raw, sfrm, AU_XML, rawcred);
 		return;
 
 	case AUT_IPORT:
@@ -4436,19 +4440,19 @@
 		return;
 
 	case AUT_PROCESS32:
-		print_process32_tok(outfp, tok, del, raw, sfrm, AU_XML);
+		print_process32_tok(outfp, tok, del, raw, sfrm, AU_XML, rawcred);
 		return;
 
 	case AUT_PROCESS32_EX:
-		print_process32ex_tok(outfp, tok, del, raw, sfrm, AU_XML);
+		print_process32ex_tok(outfp, tok, del, raw, sfrm, AU_XML, rawcred);
 		return;
 
 	case AUT_PROCESS64:
-		print_process64_tok(outfp, tok, del, raw, sfrm, AU_XML);
+		print_process64_tok(outfp, tok, del, raw, sfrm, AU_XML, rawcred);
 		return;
 
 	case AUT_PROCESS64_EX:
-		print_process64ex_tok(outfp, tok, del, raw, sfrm, AU_XML);
+		print_process64ex_tok(outfp, tok, del, raw, sfrm, AU_XML, rawcred);
 		return;
 
 	case AUT_RETURN32:
@@ -4476,19 +4480,19 @@
 		return;
 
 	case AUT_SUBJECT32:
-		print_subject32_tok(outfp, tok, del, raw, sfrm, AU_XML);
+		print_subject32_tok(outfp, tok, del, raw, sfrm, AU_XML, rawcred);
 		return;
 
 	case AUT_SUBJECT64:
-		print_subject64_tok(outfp, tok, del, raw, sfrm, AU_XML);
+		print_subject64_tok(outfp, tok, del, raw, sfrm, AU_XML, rawcred);
 		return;
 
 	case AUT_SUBJECT32_EX:
-		print_subject32ex_tok(outfp, tok, del, raw, sfrm, AU_XML);
+		print_subject32ex_tok(outfp, tok, del, raw, sfrm, AU_XML, rawcred);
 		return;
 
 	case AUT_SUBJECT64_EX:
-		print_subject64ex_tok(outfp, tok, del, raw, sfrm, AU_XML);
+		print_subject64ex_tok(outfp, tok, del, raw, sfrm, AU_XML, rawcred);
 		return;
 
 	case AUT_TEXT:


More information about the p4-projects mailing list