From a88ab4862463555e0467def1ccde65b386fa8e29 Mon Sep 17 00:00:00 2001 From: Maxim Sobolev Date: Tue, 24 Oct 2006 08:18:10 +0000 Subject: [PATCH] Ignore SIGSYS when BSM is compiled in. Otherwise, attempt to invoke su on system that don't have audit framefork compiled into kernel or ia32 binary on amd64 system will result in SIGSYS. There is one place in su.c itself where it tries to check for errno != ENOSYS, but it has been a nop since su does not catch SIGSYS anyway. There are few other places in libbsm, where attempt to invoke audit syscal would result in SIGSYS if no audit support is present in the kernel, so that the only reliable method for now is to disable SIGSYS completely in the case when BSM is compiled in. In the long run, both direct invocation of audit-related syscalls and libbsm should be made more intellegent to handle the case when BSM is not compiled into the kernel gracefully. MFC after: 3 days (provided re@ approval) --- usr.bin/su/su.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/usr.bin/su/su.c b/usr.bin/su/su.c index 76f76b61e64d..73d012a3460e 100644 --- a/usr.bin/su/su.c +++ b/usr.bin/su/su.c @@ -173,6 +173,8 @@ main(int argc, char *argv[]) #ifdef USE_BSM_AUDIT const char *aerr; au_id_t auid; + + signal(SIGSYS, SIG_IGN); #endif shell = class = cleanenv = NULL;