Date: Tue, 24 Oct 2006 12:47:53 +0400 From: Ruslan Ermilov <ru@freebsd.org> To: Maxim Sobolev <sobomax@freebsd.org> Cc: cvs-src@freebsd.org, src-committers@freebsd.org, Robert Watson <rwatson@freebsd.org>, cvs-all@freebsd.org Subject: Re: cvs commit: src/usr.bin/su su.c Message-ID: <20061024084753.GA65029@rambler-co.ru> In-Reply-To: <200610240818.k9O8IATH022313@repoman.freebsd.org> References: <200610240818.k9O8IATH022313@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--jI8keyz6grp/JLjh Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Oct 24, 2006 at 08:18:10AM +0000, Maxim Sobolev wrote: > sobomax 2006-10-24 08:18:10 UTC >=20 > FreeBSD src repository >=20 > Modified files: > usr.bin/su su.c=20 > Log: > 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 bin= ary > on amd64 system will result in SIGSYS. There is one place in su.c itself > where it tries to check for errno !=3D ENOSYS, but it has been a nop si= nce 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. > =20 > 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 n= ot > compiled into the kernel gracefully. > =20 > MFC after: 3 days > (provided re@ approval) > =20 > Revision Changes Path > 1.82 +2 -0 src/usr.bin/su/su.c >=20 I don't have "options AUDIT" compiled into my amd64/i386 kernels, and "truss su" shows this (on amd64): : geteuid() =3D 0 (0x0) : getauid(0x7fffffffe4fc) ERR#78 'Function not imp= lemented' The audit_syscalls.c is always compiled in: : # grep audit_syscalls /sys/conf/files : security/audit/audit_syscalls.c standard And in the "#else /* !AUDIT *" case, it just returns ENOSYS: : int : getauid(struct thread *td, struct getauid_args *uap) : { :=20 : return (ENOSYS); : } How that could result in SIGSYS, I don't get it? Cheers, --=20 Ruslan Ermilov ru@FreeBSD.org FreeBSD committer --jI8keyz6grp/JLjh Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (FreeBSD) iD8DBQFFPdM5qRfpzJluFF4RAkncAKCU0bf8uZGwxXnomefaiF+gtv0ubACfff/G VKNsre53Wp4HSBfJe23Zihc= =MCC4 -----END PGP SIGNATURE----- --jI8keyz6grp/JLjh--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061024084753.GA65029>