public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Eric Paris <eparis@redhat.com>
To: Jakub Jelinek <jakub@redhat.com>
Cc: Casey Schaufler <casey@schaufler-ca.com>,
	linux-kernel@vger.kernel.org, libc-alpha@sourceware.org,
	dwalsh@redhat.com, dmalcolm@redhat.com, sds@tycho.nsa.gov,
	segoon@openwall.com, linux-security-module@vger.kernel.org
Subject: Re: Friendlier EPERM - Request for input
Date: Wed, 09 Jan 2013 16:09:55 -0500	[thread overview]
Message-ID: <1357765795.1342.21.camel@localhost> (raw)
In-Reply-To: <20130109205947.GE26036@sunsite.ms.mff.cuni.cz>

On Wed, 2013-01-09 at 21:59 +0100, Jakub Jelinek wrote:
> On Wed, Jan 09, 2013 at 12:53:40PM -0800, Casey Schaufler wrote:
> > I'm suggesting that the string returned by get_extended_error_info()
> > ought to be the audit record the system call would generate, regardless
> > of whether the audit system would emit it or not.
> 
> What system call would that info be for and would it be reset on next
> syscall that succeeded, or also failed?
> 
> The thing is, various functions e.g. perform some syscall, save errno, do
> some other syscall, and if they decide that the first syscall should be what
> determines the whole function's errno, just restore errno from the saved
> value and return.  Similarly, various functions just set errno upon
> detecting some error condition in userspace.
> There is no 1:1 mapping between many libc library calls and syscalls.
> So, when would it be safe to call this new get_extended_error_info function
> and how to determine to which syscall it was relevant?

I was thinking of it to be the last kernel error.  So if the first and
that second operation caused the kernel to want to make available
extended errno information you would end up with the second.  I see this
is an informative piece of information, not normative.  Not a
replacement for errno.  I'm hoping for a best effort way to provide
extended errno information.

It would be really neat for libc to have a way to save and restore the
extended errno information, maybe even supply its own if it made the
choice in userspace, but that sounds really hard for the first pass.

I mean it would be great if we could rewrite every system call with a
cookie so userspace could reliably match things back up, but I just
don't see that as practical.  Instead we do the best we can and help
admins and developers most of the time, instead of none of the time.

-Eric


  reply	other threads:[~2013-01-09 22:08 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-09 16:04 Friendlier EPERM - Request for input Eric Paris
2013-01-09 19:43 ` Eric Paris
2013-01-09 20:14   ` Casey Schaufler
2013-01-09 20:32     ` Eric Paris
2013-01-09 20:53       ` Casey Schaufler
2013-01-09 20:59         ` Jakub Jelinek
2013-01-09 21:09           ` Eric Paris [this message]
2013-01-09 22:17             ` Carlos O'Donell
2013-01-21  0:00               ` Eric W. Biederman
2013-01-21  0:59                 ` Eric W. Biederman
2013-01-21  1:09                 ` Mike Frysinger
2013-01-09 21:12           ` Casey Schaufler
2013-01-09 21:13         ` Eric Paris
2013-01-09 21:36           ` Casey Schaufler
2013-01-10 15:14   ` Tetsuo Handa
2013-01-10 16:34     ` Eric Paris
2013-01-11 13:00       ` Mimi Zohar
2013-01-12  5:08       ` Tetsuo Handa
2013-01-27 14:16       ` Rich Kulawiec
2013-01-12  7:23 ` Rob Landley
2013-01-12 20:27 ` Dr. David Alan Gilbert

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=1357765795.1342.21.camel@localhost \
    --to=eparis@redhat.com \
    --cc=casey@schaufler-ca.com \
    --cc=dmalcolm@redhat.com \
    --cc=dwalsh@redhat.com \
    --cc=jakub@redhat.com \
    --cc=libc-alpha@sourceware.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=sds@tycho.nsa.gov \
    --cc=segoon@openwall.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