diff options
Diffstat (limited to 'usr/src/lib/libbsm/common/audit_ftpd.c')
| -rw-r--r-- | usr/src/lib/libbsm/common/audit_ftpd.c | 62 |
1 files changed, 25 insertions, 37 deletions
diff --git a/usr/src/lib/libbsm/common/audit_ftpd.c b/usr/src/lib/libbsm/common/audit_ftpd.c index 0b53043d1e..6c46336ff1 100644 --- a/usr/src/lib/libbsm/common/audit_ftpd.c +++ b/usr/src/lib/libbsm/common/audit_ftpd.c @@ -19,12 +19,9 @@ * CDDL HEADER END */ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include <sys/types.h> #include <sys/param.h> #include <stdio.h> @@ -55,7 +52,7 @@ #define NO_ANONYMOUS (4) #define MISC_FAILURE (5) -static char luser[16]; +static char luser[LOGNAME_MAX + 1]; static void generate_record(char *, int, char *); static int selected(uid_t, char *, au_event_t, int); @@ -66,10 +63,8 @@ audit_ftpd_bad_pw(char *uname) if (cannot_audit(0)) { return; } - (void) strncpy(luser, uname, 8); - luser[8] = '\0'; - generate_record(luser, BAD_PASSWD, dgettext(bsm_dom, - "bad password")); + (void) strncpy(luser, uname, LOGNAME_MAX); + generate_record(luser, BAD_PASSWD, dgettext(bsm_dom, "bad password")); } @@ -79,10 +74,8 @@ audit_ftpd_unknown(char *uname) if (cannot_audit(0)) { return; } - (void) strncpy(luser, uname, 8); - luser[8] = '\0'; - generate_record(luser, UNKNOWN_USER, dgettext(bsm_dom, - "unknown user")); + (void) strncpy(luser, uname, LOGNAME_MAX); + generate_record(luser, UNKNOWN_USER, dgettext(bsm_dom, "unknown user")); } @@ -92,10 +85,9 @@ audit_ftpd_excluded(char *uname) if (cannot_audit(0)) { return; } - (void) strncpy(luser, uname, 8); - luser[8] = '\0'; + (void) strncpy(luser, uname, LOGNAME_MAX); generate_record(luser, EXCLUDED_USER, dgettext(bsm_dom, - "excluded user")); + "excluded user")); } @@ -105,8 +97,7 @@ audit_ftpd_no_anon(void) if (cannot_audit(0)) { return; } - generate_record("", NO_ANONYMOUS, dgettext(bsm_dom, - "no anonymous")); + generate_record("", NO_ANONYMOUS, dgettext(bsm_dom, "no anonymous")); } void @@ -115,8 +106,7 @@ audit_ftpd_failure(char *uname) if (cannot_audit(0)) { return; } - generate_record(uname, MISC_FAILURE, dgettext(bsm_dom, - "misc failure")); + generate_record(uname, MISC_FAILURE, dgettext(bsm_dom, "misc failure")); } void @@ -125,8 +115,7 @@ audit_ftpd_success(char *uname) if (cannot_audit(0)) { return; } - (void) strncpy(luser, uname, 8); - luser[8] = '\0'; + (void) strncpy(luser, uname, LOGNAME_MAX); generate_record(luser, 0, ""); } @@ -186,7 +175,7 @@ generate_record( /* add subject token */ (void) au_write(rd, au_to_subject_ex(uid, uid, gid, - ruid, rgid, pid, pid, &info.ai_termid)); + ruid, rgid, pid, pid, &info.ai_termid)); if (is_system_labeled()) (void) au_write(rd, au_to_mylabel()); @@ -229,27 +218,26 @@ selected( au_event_t event, int err) { - int rc, sorf; - char naflags[512]; - struct au_mask mask; + int sorf; + struct au_mask mask; mask.am_success = mask.am_failure = 0; if (uid > MAXEPHUID) { - rc = getacna(naflags, 256); /* get non-attrib flags */ - if (rc == 0) - (void) getauditflagsbin(naflags, &mask); + /* get non-attrib flags */ + (void) auditon(A_GETKMASK, (caddr_t)&mask, sizeof (mask)); } else { - rc = au_user_mask(locuser, &mask); + (void) au_user_mask(locuser, &mask); } - if (err == 0) + if (err == 0) { sorf = AU_PRS_SUCCESS; - else if (err >= 1) + } else if (err >= 1) { sorf = AU_PRS_FAILURE; - else + } else { sorf = AU_PRS_BOTH; - rc = au_preselect(event, &mask, sorf, AU_PRS_REREAD); - return (rc); + } + + return (au_preselect(event, &mask, sorf, AU_PRS_REREAD)); } @@ -277,7 +265,7 @@ audit_ftpd_logout(void) /* determine if we're preselected */ if (au_preselect(AUE_ftpd_logout, &info.ai_mask, AU_PRS_SUCCESS, - AU_PRS_USECACHE) == 0) { + AU_PRS_USECACHE) == 0) { (void) priv_set(PRIV_OFF, PRIV_EFFECTIVE, PRIV_PROC_AUDIT, NULL); return; @@ -293,7 +281,7 @@ audit_ftpd_logout(void) /* add subject token */ (void) au_write(rd, au_to_subject_ex(info.ai_auid, euid, - egid, uid, gid, pid, pid, &info.ai_termid)); + egid, uid, gid, pid, pid, &info.ai_termid)); if (is_system_labeled()) (void) au_write(rd, au_to_mylabel()); |
