Skip site navigation (1)Skip section navigation (2)
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>