copyin (4.3BSD)
chris at mimsy.UUCP
chris at mimsy.UUCP
Wed Mar 11 04:12:59 AEST 1987
In article <4838 at brl-adm.ARPA> Conley%csvax.cs.ukans.edu at RELAY.CS.NET writes:
>Well, a couple of us here have been mucking with a system call ...
>one parameter is a string, and we use uap->string just like any other string
>(e.g. in a tprintf). However, an associate insists that this cannot be
>done, i.e. the string exists in user space (and this is kernel mode, hence
>kernel address space).
He is right. However, user space and kernel space are not mutually
exclusive, not on a Vax. Kernel code can look in user space if it
wants to. If, however, the `string' is a wild pointer, the machine
will crash:
main()
{
new_syscall((char *) 0xc0000000);
/* NOTREACHED */
}
>"Gotta do a copyin".
Not necessarily. The routine for dealing with C strings in user
space is `copyinstr', but some other part of the kernel may be
doing that already (e.g., namei).
--
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690)
UUCP: seismo!mimsy!chris ARPA/CSNet: chris at mimsy.umd.edu
More information about the Comp.unix.wizards
mailing list