cvs commit: src/usr.bin/su su.c

Robert Watson rwatson at FreeBSD.org
Tue Oct 24 13:55:50 UTC 2006


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


More information about the cvs-all mailing list