On Wed, Dec 16, 2015 at 05:27:03PM -0500, Zack Weinberg wrote: > On Wed, Dec 16, 2015 at 4:59 PM, Rich Felker <dalias@xxxxxxxx> wrote: > >> > Programs could also be calling the syscall directly (using syscall() > >> > or asm) and using it as a (very cheap, fail-safe) way to verify that > >> > an address is writable before attempting to write to it. Breaking this > >> > would be a kernel API regression. However the library function time() > >> > has UB for invalid pointers and no obligation to support them. > >> > >> sure, but that still doesn't mean the kernel should be sending SEGV. > >> which is what this subthread was about. > > > > The kernel is not causing SIGSEGV as far as I can tell; it's purely > > the library function time that's causing this. > > .... Do you consider the vDSO to be part of the kernel, or part of the C library? The vdso is library code provided by the kernel, but there's no fundamental reason to expect it to behave identically to the system call. Applications making the system call themselves directly will never end up calling the vdso code, so it doesn't matter if its behavior in corner cases like this is the same as the syscall. Said differently, the vdso function is a _new_ stable kernel API that's functionally similar to the syscall, not the same API, since you call it in a very different way. Rich -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html