[lkml]   [2007]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[patch 07/40] IB/uverbs: Fix checking of userspace object ownership

    -stable review patch. If anyone has any objections, please let us know.

    From: Roland Dreier <>

    Upstream as cbfb50e6e2e9c580848c0f51d37c24cdfb1cb704

    Commit 9ead190b ("IB/uverbs: Don't serialize with ib_uverbs_idr_mutex")
    rewrote how userspace objects are looked up in the uverbs module's
    idrs, and introduced a severe bug in the process: there is no checking
    that an operation is being performed by the right process any more.
    Fix this by adding the missing check of uobj->context in __idr_get_uobj().

    Apparently everyone is being very careful to only touch their own
    objects, because this bug was introduced in June 2006 in 2.6.18, and
    has gone undetected until now.

    Signed-off-by: Roland Dreier <>
    Signed-off-by: Greg Kroah-Hartman <>

    drivers/infiniband/core/uverbs_cmd.c | 8 ++++++--
    1 file changed, 6 insertions(+), 2 deletions(-)

    --- a/drivers/infiniband/core/uverbs_cmd.c
    +++ b/drivers/infiniband/core/uverbs_cmd.c
    @@ -147,8 +147,12 @@ static struct ib_uobject *__idr_get_uobj

    uobj = idr_find(idr, id);
    - if (uobj)
    - kref_get(&uobj->ref);
    + if (uobj) {
    + if (uobj->context == context)
    + kref_get(&uobj->ref);
    + else
    + uobj = NULL;
    + }

    return uobj;
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-11-15 07:57    [W:0.019 / U:69.736 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site