lkml.org 
[lkml]   [2012]   [Apr]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] cpuidle: Avoid possible NULL pointer dereference in __cpuidle_register_device()
    On 04/03/2012 01:51 PM, Srivatsa S. Bhat wrote:
    > On 04/03/2012 01:01 AM, Daniel Lezcano wrote:
    >
    >> On 04/02/2012 04:44 PM, Srivatsa S. Bhat wrote:
    >>> In __cpuidle_register_device(), "dev->cpu" is used before checking if
    >>> dev is
    >>> non-NULL. Fix it.
    >>>
    >>> Signed-off-by: Srivatsa S. Bhat<srivatsa.bhat@linux.vnet.ibm.com>
    >>> ---
    >>
    >> That should be fixed at the caller level. Usually, static function does
    >> not check the function parameters, it is up to the exported function to
    >> do that. It is supposed the static functions are called with valid
    >> parameters.
    >>
    >
    >
    > Ok, good point! I hadn't thought about that.. I just happened to notice
    > that in __cpuidle_register_device(), the dev == NULL check is performed
    > _after_ dereferencing it, which made the check useless. So I tried to
    > fix that within that function. But thanks for pointing out the semantics..
    >
    >> There are two callers for __cpuidle_register_device:
    >> * cpuidle_register_device
    >> * cpuidle_enable_device
    >>
    >> Both of them do not check 'dev' is a valid parameter. They should as
    >> they are exported and could be used by an external module. IMHO, BUG_ON
    >> could be used here if dev == NULL.
    >>
    >
    >
    > BUG_ON? That would crash the system.. which might be unnecessary..

    Mmh, yes, I agree. never mind.

    > How about checking if dev == NULL in the 2 callers like you suggested
    > and returning -EINVAL if dev is indeed NULL?
    > (And of course no checks for dev == NULL in __cpuidle_register_device).

    Ok for me.

    > Thank you for the review!

    You are welcome :)

    Thanks
    -- Daniel

    --
    <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

    Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
    <http://twitter.com/#!/linaroorg> Twitter |
    <http://www.linaro.org/linaro-blog/> Blog

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2012-04-03 14:11    [W:0.024 / U:2.904 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site