lkml.org 
[lkml]   [2013]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/2] kernel/sys.c: return the current gid when error occurs
    On 08/08/2013 09:35 AM, Andy Lutomirski wrote:
    > On Wed, Aug 7, 2013 at 6:30 PM, Chen Gang <gang.chen@asianux.com> wrote:
    >> On 08/08/2013 12:58 AM, Andy Lutomirski wrote:
    >>> On Wed, Aug 7, 2013 at 9:21 AM, Oleg Nesterov <oleg@redhat.com> wrote:
    >>>> On 08/06, Andy Lutomirski wrote:
    >>>>>
    >>>>> I assume that what the man page means is that the return value is
    >>>>> whatever fsgid was prior to the call. On error, fsgid isn't changed, so
    >>>>> the return value is still "current".
    >>>>
    >>>> Probably... Still
    >>>>
    >>>> On success, the previous value of fsuid is returned.
    >>>> On error, the current value of fsuid is returned.
    >>>>
    >>>> looks confusing. sys_setfsuid() always returns the old value.
    >>>>
    >>>>> (FWIW, this behavior is awful and is probably the cause of a security
    >>>>> bug or three, since success and failure are indistinguishable.
    >>>>
    >>>> At least this all looks strange.
    >>>>
    >>>> I dunno if we can change this old behaviour. I won't be surprized
    >>>> if someone already uses setfsuid(-1) as getfsuid().
    >>>
    >>
    >> Oh, really it is.
    >>
    >> Hmm... as a pair function, we need add getfsuid() too, if we do not add
    >> it, it will make negative effect with setfsuid().
    >>
    >> Since it is a system call, we have to keep compitable.
    >>
    >> So in my opinion, better add getfsuid2()/setfsuid2() instead of current
    >> setfsuid()
    >
    > How about getfsuid() and setfsuid2()?
    >

    Hmm... I have 2 reasons, please check.

    1st reason: I checked history (just like Kees Cook suggested),
    getfsuid() is mentioned before (you can google to find it), so need use
    getfsuid2() to bypass the history complex.

    And 2nd reason: getfsuid() seems more like the pair of setfsuid(), not
    for setfsuid2().



    > --Andy
    >
    >

    Thanks.
    --
    Chen Gang


    \
     
     \ /
      Last update: 2013-08-08 04:21    [W:2.696 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site