diff options
Diffstat (limited to 'contrib/openbsm/libbsm/audit_submit.3')
-rw-r--r-- | contrib/openbsm/libbsm/audit_submit.3 | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/contrib/openbsm/libbsm/audit_submit.3 b/contrib/openbsm/libbsm/audit_submit.3 index 80a2578..b6c28a7 100644 --- a/contrib/openbsm/libbsm/audit_submit.3 +++ b/contrib/openbsm/libbsm/audit_submit.3 @@ -27,7 +27,7 @@ .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $P4: //depot/projects/trustedbsd/openbsm/libbsm/audit_submit.3#15 $ +.\" $P4: //depot/projects/trustedbsd/openbsm/libbsm/audit_submit.3#17 $ .\" .Dd January 18, 2008 .Dt audit_submit 3 @@ -98,14 +98,28 @@ or #include <stdarg.h> #include <errno.h> -int +void audit_bad_su(char *from_login, char *to_login) { + struct auditinfo_addr aia; + struct auditinfo ai; + au_id_t aid; int error; - error = audit_submit(AUE_su, getuid(), 1, EPERM, + error = getaudit_addr(&aia, sizeof(aia)); + if (error < 0 && errno == ENOSYS) { + error = getaudit(&ai); + if (error < 0) + err(1, "getaudit"); + aid = ai.ai_auid; + } else if (error < 0) + err(1, "getaudit_addr"); + else + aid = aia.ai_auid; + error = audit_submit(AUE_su, aid, EPERM, 1, "bad su from %s to %s", from_login, to_login); - return (error); + if (error != 0) + err(1, "audit_submit"); } .Ed .Pp @@ -117,6 +131,13 @@ text,bad su from from csjp to root return,failure : Operation not permitted,1 trailer,94 .Ed +.Sh RETURN VALUES +If successful, +.Nm +will return zero. +Otherwise a -1 is returned and the global variable +.Va errno +is set to indicate the error. .Sh SEE ALSO .Xr auditon 2 , .Xr getaudit 2 , |