• Wen Yang's avatar
    power: supply: ab8500: fix leaked of_node refs in ab8500_bm_of_probe · 0b646fd1
    Wen Yang authored
    The call to of_parse_phandle returns a node pointer with refcount
    incremented thus it must be explicitly decremented after the last
    usage.
    
    492 int ab8500_bm_of_probe(struct device *dev,
    493                        struct device_node *np,
    494                        struct abx500_bm_data *bm)
    495 {
    496         const struct batres_vs_temp *tmp_batres_tbl;
    497         struct device_node *battery_node;
        ...
    501         /* get phandle to 'battery-info' node */
    502         battery_node = of_parse_phandle(np, "battery", 0);
        ...
    509         if (!btech) {
    510                 dev_warn(dev, "missing property battery-name/type\n");
    511                 return -EINVAL;    ---> leaked here
    512         }
        ...
    540         of_node_put(battery_node);   ---> released here
    541
    542         return 0;
    543 }
    
    Detected by coccinelle with the following warnings:
    ./drivers/power/supply/ab8500_bmdata.c:511:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 502, but without a corresponding object release within this function.
    Signed-off-by: default avatarWen Yang <wen.yang99@zte.com.cn>
    Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
    0b646fd1
ab8500_bmdata.c 13.8 KB