eeze_disk: fix potential memory leak 88/258688/1
authorChristopher Michael <devilhorns@comcast.net>
Thu, 25 Feb 2021 15:02:07 +0000 (10:02 -0500)
committerShinwoo Kim <cinoo.kim@samsung.com>
Mon, 24 May 2021 08:28:00 +0000 (17:28 +0900)
If allocation for disk fails, then we leak memory from previously
called _new_device function.

This patch based on D12223 from akanad (Wonki Kim)

ref D12223

Change-Id: If22a28d99a6b91eadc1b82103daabf92db515923

src/lib/eeze/eeze_disk.c

index 60c4fa7..9469f47 100644 (file)
@@ -176,7 +176,11 @@ eeze_disk_new(const char *path)
 
 
    if (!(disk = calloc(1, sizeof(Eeze_Disk))))
-     return NULL;
+     {
+        eina_stringshare_del(syspath);
+        udev_device_unref(dev);
+        return NULL;
+     }
 
 
    if (is_dev)
@@ -187,7 +191,6 @@ eeze_disk_new(const char *path)
    else
      disk->syspath = eina_stringshare_add(udev_device_get_syspath(dev));
 
-
    disk->device = dev;
    disk->mount_opts = EEZE_DISK_MOUNTOPT_DEFAULTS;
    disk->mount_cmd_changed = EINA_TRUE;