linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Thomas Gleixner <tglx@linutronix.de>
To: Andreas Schwab <schwab@linux-m68k.org>
Cc: Nathan Lynch <nathanl@linux.ibm.com>,
	Vincenzo Frascino <vincenzo.frascino@arm.com>,
	"linuxppc-dev@ozlabs.org" <linuxppc-dev@ozlabs.org>
Subject: Re: passing NULL to clock_getres (VDSO): terminated by unexpected signal 11
Date: Sun, 20 Oct 2019 17:45:45 +0200 (CEST)	[thread overview]
Message-ID: <alpine.DEB.2.21.1910201731070.2090@nanos.tec.linutronix.de> (raw)
In-Reply-To: <875zkjipra.fsf@igel.home>

On Sun, 20 Oct 2019, Andreas Schwab wrote:

> On Okt 20 2019, Thomas Gleixner <tglx@linutronix.de> wrote:
> 
> > clock_getres(NULL) is hardly valid.
> 
> Of course not, it lacks a parameter.

You know exactly what I mean.
 
> > So special casing
> >
> >     clock_getres(clock, NULL);
> >
> > just to make a test case happy is a pointless exercise which does not make
> > any sense at all.
> 
> POSIX requires it to work.

POSIX does not mention anything about the validity of the pointer handed to
clock_getres().

https://pubs.opengroup.org/onlinepubs/9699919799/

 "The clock_getres(), clock_gettime(), and clock_settime() functions shall fail if:

   [EINVAL]
     The clock_id argument does not specify a known clock."

EINVAL is the only documented error code for clock_getres(). 

Again. The VDSO is not a syscall and therefore neither address space
validation of the supplied pointer nor catching an invalid access works
like it does in a syscall.

The only invalid pointer it can catch is NULL, but that's ONE case out of a
gazillion. So what's the value of catching NULL and only NULL?

If you can come up with a solution to handle invalid pointers in the VDSO
gracefully, then I'm surely all ears.

If not then can you please explain why VDSO usage worked without pointer
validation since the time VDSO was invented more than a decade ago and just
now requires full invalid pointer handling?

Thanks,

	tglx

  reply	other threads:[~2019-10-20 15:47 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <0fc22a08-31d9-e4d1-557e-bf5b482a9a20__6444.28012180782$1571503753$gmane$org@c-s.fr>
2019-10-19 19:18 ` passing NULL to clock_getres (VDSO): terminated by unexpected signal 11 Andreas Schwab
2019-10-20  9:20   ` Christophe Leroy
2019-10-20  9:53     ` Andreas Schwab
2019-10-20 10:25       ` Christophe Leroy
2019-10-20 11:44         ` Thomas Gleixner
2019-10-20 12:07           ` Andreas Schwab
2019-10-20 15:45             ` Thomas Gleixner [this message]
2019-10-20 16:08               ` Andreas Schwab
2019-10-20 19:53                 ` Thomas Gleixner
2019-10-20 21:17                   ` Andreas Schwab
2019-10-21 10:07                     ` [PATCH] lib/vdso: Make clock_getres() POSIX compliant again Thomas Gleixner
2019-10-21 15:23                       ` Christophe Leroy
2019-10-21  9:03                   ` passing NULL to clock_getres (VDSO): terminated by unexpected signal 11 David Laight
2019-10-19 16:46 Christophe Leroy
2019-10-28 15:46 ` Nathan Lynch
2019-10-28 15:50   ` Christophe Leroy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.2.21.1910201731070.2090@nanos.tec.linutronix.de \
    --to=tglx@linutronix.de \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=nathanl@linux.ibm.com \
    --cc=schwab@linux-m68k.org \
    --cc=vincenzo.frascino@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).