Messages in this thread | | | From | "H. Peter Anvin" <> | Subject | Re: copy_from_user() fixu | Date | Mon, 24 Aug 1998 23:38:58 -0700 (PDT) |
| |
> > No, it's not. EFAULT is non-POSIX: it exposes the difference > > between system calls and library functions. > > EFAULT is used in the Unix98 spec.
Perhaps, but it breaks the spirit of all these standards (that you can have either a library or kernel implementation).
> I've got code that pretty much expects EFAULT to work one way or > another. Arguably, the code is broken, but so far it works on most > OSs I've tried it one.
It IS broken; there is really no excuse for it (you're redirecting through an invalid pointer, and relying on the internals of libc.)
> > EFAULT is triggered by the same thing as SIGSEGV; the distinction > > is artificial. > > People who want this, should hack their libc so check for a global > variable and SEGV. (Assuming libc can be made do this cleanly, I > think it can, but haven't follow this thread that closely).
Someone just pointed out that it really cannot -- you can hack to make it raise the signal, but the signal context will be all wrong.
-hpa
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html
| |