From owner-p4-projects@FreeBSD.ORG Tue May 25 18:53:36 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E6B621065677; Tue, 25 May 2010 18:53:35 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AAA5C106564A for ; Tue, 25 May 2010 18:53:35 +0000 (UTC) (envelope-from gpf@FreeBSD.org) Received: from repoman.freebsd.org (unknown [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 95C408FC19 for ; Tue, 25 May 2010 18:53:35 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o4PIrZvN089570 for ; Tue, 25 May 2010 18:53:35 GMT (envelope-from gpf@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o4PIrZVm089568 for perforce@freebsd.org; Tue, 25 May 2010 18:53:35 GMT (envelope-from gpf@FreeBSD.org) Date: Tue, 25 May 2010 18:53:35 GMT Message-Id: <201005251853.o4PIrZVm089568@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gpf@FreeBSD.org using -f From: Efstratios Karatzas To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 178772 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 May 2010 18:53:36 -0000 http://p4web.freebsd.org/@@178772?ac=10 Change 178772 by gpf@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, ""); - print_group(fp, tok->tt.grps.list[i], raw); + print_group(fp, tok->tt.grps.list[i], raw, rawcred); fprintf(fp, ""); 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: