]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
misc: tegra-profiler: fix resource leaks
authorDeepak Nibade <dnibade@nvidia.com>
Mon, 19 May 2014 10:18:02 +0000 (15:48 +0530)
committerDeepak Nibade <dnibade@nvidia.com>
Thu, 22 May 2014 07:01:42 +0000 (00:01 -0700)
Fix Coverity issue of resource leaks
Coverity id : 26481
Coverity id : 26483

Bug 1416640

Change-Id: Ib71950f196b5421ccbc21b3ac8d620e790e83366
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/411421
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Reviewed-by: Igor Nabirushkin <inabirushkin@nvidia.com>
Reviewed-by: Sri Krishna Chowdary <schowdary@nvidia.com>
drivers/misc/tegra-profiler/comm.c
drivers/misc/tegra-profiler/eh_unwind.c

index df11584097b28faaf7f88ec36471e529ed7e524e..3fed6c571d457bfc91e2fccb5de39dde97e51ac8 100644 (file)
@@ -835,6 +835,7 @@ device_mmap(struct file *filp, struct vm_area_struct *vma)
        entry->data = vmalloc_user(nr_pages * PAGE_SIZE);
        if (!entry->data) {
                pr_err("%s: error: vmalloc_user", __func__);
+               kfree(entry);
                return -ENOMEM;
        }
 
index 629412d591a2a4c711c85f98c645f1ce5f0c2509..1ea7f869e8689dc63e14559a58e1011c365264ec 100644 (file)
@@ -477,16 +477,14 @@ int quadd_unwind_set_extab(struct quadd_extables *extabs,
        ctx.ex_tables_size += ti->length;
 
        nr_added = add_ex_region(rd_new, &ri_entry);
-       if (nr_added == 0) {
-               rd_free(rd_new);
-               goto error_out;
-       }
+       if (nr_added == 0)
+               goto error_free;
        rd_new->curr_nr += nr_added;
 
        ex_entry = kzalloc(sizeof(*ex_entry), GFP_KERNEL);
        if (!ex_entry) {
                err = -ENOMEM;
-               goto error_out;
+               goto error_free;
        }
        memcpy(ex_entry, &ri_entry, sizeof(*ex_entry));
 
@@ -502,6 +500,8 @@ int quadd_unwind_set_extab(struct quadd_extables *extabs,
 
        return 0;
 
+error_free:
+       rd_free(rd_new);
 error_out:
        spin_unlock(&ctx.lock);
        return err;