lkml.org 
[lkml]   [2010]   [Aug]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/7] drivers/macintosh/via-pmu-led.c: Add of_node_put to avoid memory leak
    Date
    Add a call to of_node_put in the error handling code following a call to
    of_find_node_by_path.

    The semantic match that finds this problem is as follows:
    (http://coccinelle.lip6.fr/)

    // <smpl>
    @r exists@
    local idexpression x;
    expression E,E1;
    statement S;
    @@

    *x =
    (of_find_node_by_path
    |of_find_node_by_name
    |of_find_node_by_phandle
    |of_get_parent
    |of_get_next_parent
    |of_get_next_child
    |of_find_compatible_node
    |of_match_node
    )(...);
    ...
    if (x == NULL) S
    <... when != x = E
    *if (...) {
    ... when != of_node_put(x)
    when != if (...) { ... of_node_put(x); ... }
    (
    return <+...x...+>;
    |
    * return ...;
    )
    }
    ...>
    of_node_put(x);
    // </smpl>

    Signed-off-by: Julia Lawall <julia@diku.dk>

    ---
    drivers/macintosh/via-pmu-led.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/macintosh/via-pmu-led.c b/drivers/macintosh/via-pmu-led.c
    index d242976..19c3718 100644
    --- a/drivers/macintosh/via-pmu-led.c
    +++ b/drivers/macintosh/via-pmu-led.c
    @@ -92,8 +92,10 @@ static int __init via_pmu_led_init(void)
    if (dt == NULL)
    return -ENODEV;
    model = of_get_property(dt, "model", NULL);
    - if (model == NULL)
    + if (model == NULL) {
    + of_node_put(dt);
    return -ENODEV;
    + }
    if (strncmp(model, "PowerBook", strlen("PowerBook")) != 0 &&
    strncmp(model, "iBook", strlen("iBook")) != 0 &&
    strcmp(model, "PowerMac7,2") != 0 &&


    \
     
     \ /
      Last update: 2010-08-29 11:55    [W:0.020 / U:59.408 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site