1/* 2 * Copyright (c) 2009 Todd C. Miller <Todd.Miller@courtesan.com> 3 * 4 * Permission to use, copy, modify, and distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17#include <config.h> 18 19#include <sys/types.h> 20#include <stdio.h> 21#ifdef STDC_HEADERS 22# include <stdlib.h> 23# include <stddef.h> 24#else 25# ifdef HAVE_STDLIB_H 26# include <stdlib.h> 27# endif 28#endif /* STDC_HEADERS */ 29#ifdef __STDC__ 30# include <stdarg.h> 31#else 32# include <varargs.h> 33#endif 34 35#include "missing.h" 36#include "logging.h" 37 38#ifdef HAVE_BSM_AUDIT 39# include "bsm_audit.h" 40#endif 41#ifdef HAVE_LINUX_AUDIT 42# include "linux_audit.h" 43#endif 44 45void 46#ifdef __STDC__ 47audit_success(char *exec_args[]) 48#else 49audit_success(exec_args) 50 const char *exec_args[]; 51#endif 52{ 53 if (exec_args == NULL) 54 return; 55 56#ifdef HAVE_BSM_AUDIT 57 bsm_audit_success(exec_args); 58#endif 59#ifdef HAVE_LINUX_AUDIT 60 linux_audit_command(exec_args, 1); 61#endif 62} 63 64void 65#ifdef __STDC__ 66audit_failure(char *exec_args[], char const *const fmt, ...) 67#else 68audit_failure(exec_args, fmt, va_alist) 69 const char *exec_args[]; 70 char const *const fmt; 71 va_dcl 72#endif 73{ 74 va_list ap; 75 76 if (exec_args == NULL) 77 return; 78 79#ifdef __STDC__ 80 va_start(ap, fmt); 81#else 82 va_start(ap); 83#endif 84#ifdef HAVE_BSM_AUDIT 85 bsm_audit_failure(exec_args, fmt, ap); 86#endif 87#ifdef HAVE_LINUX_AUDIT 88 linux_audit_command(exec_args, 0); 89#endif 90 va_end(ap); 91} 92