summaryrefslogtreecommitdiff
path: root/usr/src/lib/libbsm/common/au_to.c
diff options
context:
space:
mode:
authorgww <gww@eng.sun.com>2010-03-11 11:53:26 -0800
committergww <gww@eng.sun.com>2010-03-11 11:53:26 -0800
commit047f6e6f42a3d50d3e38a05c00bf7dd3fafac726 (patch)
treefee27947a3df8160f2f34f1f18c80970af297713 /usr/src/lib/libbsm/common/au_to.c
parent46c08a974e0e3e8aa24a730da1270e5b046bda29 (diff)
downloadillumos-joyent-047f6e6f42a3d50d3e38a05c00bf7dd3fafac726.tar.gz
6914628 Implement the user object audit token PSARC/2010/001 User object audit token
PSARC/2010/001 User object audit token 6580704 passwd gww produces a less optimal audit record.
Diffstat (limited to 'usr/src/lib/libbsm/common/au_to.c')
-rw-r--r--usr/src/lib/libbsm/common/au_to.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/usr/src/lib/libbsm/common/au_to.c b/usr/src/lib/libbsm/common/au_to.c
index 9ee2dd7b7a..2e77248b4b 100644
--- a/usr/src/lib/libbsm/common/au_to.c
+++ b/usr/src/lib/libbsm/common/au_to.c
@@ -19,7 +19,7 @@
* CDDL HEADER END
*/
/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
@@ -1211,6 +1211,34 @@ au_to_upriv(char sorf, char *priv)
}
/*
+ * au_to_user
+ * return s:
+ * pointer to a user token.
+ */
+token_t *
+au_to_user(uid_t uid, char *username)
+{
+ token_t *token; /* local token */
+ adr_t adr; /* adr memory stream header */
+ char data_header = AUT_USER; /* header for this token */
+ short bytes; /* length of string */
+
+ bytes = (short)strlen(username) + 1;
+
+ token = get_token(sizeof (char) + sizeof (uid_t) + sizeof (short) +
+ bytes);
+ if (token == NULL)
+ return (NULL);
+ adr_start(&adr, token->tt_data);
+ adr_char(&adr, &data_header, 1);
+ adr_uid(&adr, &uid, 1);
+ adr_short(&adr, &bytes, 1);
+ adr_char(&adr, username, bytes);
+
+ return (token);
+}
+
+/*
* au_to_xatom
* return s:
* pointer to a xatom token.