Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Oct 2006 14:55:48 +0100 (BST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Maxim Sobolev <sobomax@FreeBSD.org>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/usr.bin/su su.c
Message-ID:  <20061024145506.G48521@fledge.watson.org>
In-Reply-To: <453DEB1B.6040900@FreeBSD.org>
References:  <200610240818.k9O8IATH022313@repoman.freebsd.org> <20061024094643.N37455@fledge.watson.org> <453DDED4.3070208@FreeBSD.org> <20061024104143.Y37455@fledge.watson.org> <453DE26E.3040502@FreeBSD.org> <20061024105800.J37455@fledge.watson.org> <453DEB1B.6040900@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On Tue, 24 Oct 2006, Maxim Sobolev wrote:

> Robert Watson wrote:
>> The method by which the distinction between ENOSYS+SIGSYS and plain ENOSYS 
>> is determined is in the implementation of the system call.  If a system 
>> call is flagged as unimplemented (i.e., you never hit the function 
>> implementing it), you get SIGSYS+ENOSYS.  If you enter the stub, you get 
>> ENOSYS.  So the problem is that the compat code doesn't enter the stub, so 
>> never gets to the ENOSYS path.  A casual glance at the system call 
>> arguments for audit suggest that wrappers aren't needed (no pointers 
>> embedded in structure arguments), so simply marking them as implemented 
>> will likely work.
>
> Well unless I have confused something it is not really the case. For 
> example, getauid() system call takes pointer as an argument.

I've gone ahead and updated the freebsd32 syscalls.master file to hook up the 
audit system calls.  Could you locally back out your change and see if a 
kernel built with these changes operates properly?

Thanks,

Robert N M Watson
Computer Laboratory
University of Cambridge



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061024145506.G48521>