@ -2529,6 +2529,25 @@ void __audit_mmap_fd(int fd, int flags)
context - > type = AUDIT_MMAP ;
}
static void audit_log_abend ( struct audit_buffer * ab , char * reason , long signr )
{
uid_t auid , uid ;
gid_t gid ;
unsigned int sessionid ;
auid = audit_get_loginuid ( current ) ;
sessionid = audit_get_sessionid ( current ) ;
current_uid_gid ( & uid , & gid ) ;
audit_log_format ( ab , " auid=%u uid=%u gid=%u ses=%u " ,
auid , uid , gid , sessionid ) ;
audit_log_task_context ( ab ) ;
audit_log_format ( ab , " pid=%d comm= " , current - > pid ) ;
audit_log_untrustedstring ( ab , current - > comm ) ;
audit_log_format ( ab , " reason= " ) ;
audit_log_string ( ab , reason ) ;
audit_log_format ( ab , " sig=%ld " , signr ) ;
}
/**
* audit_core_dumps - record information about processes that end abnormally
* @ signr : signal value
@ -2539,10 +2558,6 @@ void __audit_mmap_fd(int fd, int flags)
void audit_core_dumps ( long signr )
{
struct audit_buffer * ab ;
u32 sid ;
uid_t auid = audit_get_loginuid ( current ) , uid ;
gid_t gid ;
unsigned int sessionid = audit_get_sessionid ( current ) ;
if ( ! audit_enabled )
return ;
@ -2551,24 +2566,17 @@ void audit_core_dumps(long signr)
return ;
ab = audit_log_start ( NULL , GFP_KERNEL , AUDIT_ANOM_ABEND ) ;
current_uid_gid ( & uid , & gid ) ;
audit_log_format ( ab , " auid=%u uid=%u gid=%u ses=%u " ,
auid , uid , gid , sessionid ) ;
security_task_getsecid ( current , & sid ) ;
if ( sid ) {
char * ctx = NULL ;
u32 len ;
audit_log_abend ( ab , " memory violation " , signr ) ;
audit_log_end ( ab ) ;
}
if ( security_secid_to_secctx ( sid , & ctx , & len ) )
audit_log_format ( ab , " ssid=%u " , sid ) ;
else {
audit_log_format ( ab , " subj=%s " , ctx ) ;
security_release_secctx ( ctx , len ) ;
}
}
audit_log_format ( ab , " pid=%d comm= " , current - > pid ) ;
audit_log_untrustedstring ( ab , current - > comm ) ;
audit_log_format ( ab , " sig=%ld " , signr ) ;
void __audit_seccomp ( unsigned long syscall )
{
struct audit_buffer * ab ;
ab = audit_log_start ( NULL , GFP_KERNEL , AUDIT_ANOM_ABEND ) ;
audit_log_abend ( ab , " seccomp " , SIGKILL ) ;
audit_log_format ( ab , " syscall=%ld " , syscall ) ;
audit_log_end ( ab ) ;
}