lkml.org 
[lkml]   [2010]   [Aug]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 1/7] drivers/macintosh/via-pmu-led.c: Add of_node_put to avoid memory leak


    Julia Lawall schrieb:
    > 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 &&
    >

    is there any rule that says when to use strncmp ? it seems perfecly valid to use strcpy here
    (what is done in the last cmp).

    re,
    wh





    \
     
     \ /
      Last update: 2010-08-31 17:53    [W:0.024 / U:29.964 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site