From 0e8c19b115797ff934e84c105ef4357a899bc973 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Wed, 12 Feb 2020 10:54:27 -0600 Subject: DiskMan: Fix all memory leaks --- diskman/diskman.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'diskman/diskman.cc') diff --git a/diskman/diskman.cc b/diskman/diskman.cc index a7d4a26..ee04911 100644 --- a/diskman/diskman.cc +++ b/diskman/diskman.cc @@ -52,14 +52,14 @@ std::vector DiskMan::find_disks(bool include_part, bool include_vg, udev_enumerate_add_match_property(disk_enum, "DEVTYPE", "disk"); udev_enumerate_scan_devices(disk_enum); first = udev_enumerate_get_list_entry(disk_enum); - if(first == NULL) { + if(first == nullptr) { std::cerr << "No block devices found" << std::endl; return {}; } udev_list_entry_foreach(item, first) { const char *path = udev_list_entry_get_name(item); - if(device != NULL) udev_device_unref(device); + if(device != nullptr) udev_device_unref(device); device = udev_device_new_from_syspath(pImpl->udev, path); std::string name(udev_device_get_sysname(device)); if(name.compare(0, 4, "loop") == 0 @@ -78,6 +78,11 @@ std::vector DiskMan::find_disks(bool include_part, bool include_vg, disks.push_back(Disk(device, 0, include_part)); } + if(device != nullptr) { + udev_device_unref(device); + } + udev_enumerate_unref(disk_enum); + return disks; } -- cgit v1.2.3-60-g2f50