summaryrefslogtreecommitdiff
path: root/diskman/diskman.cc
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2020-02-12 10:54:27 -0600
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2020-02-12 10:54:27 -0600
commit0e8c19b115797ff934e84c105ef4357a899bc973 (patch)
treeb3645d8bd16c47ab9281b566135472236d6de336 /diskman/diskman.cc
parentd72ef990a3a417e4f9062517313afe325e7035e6 (diff)
downloadhorizon-0e8c19b115797ff934e84c105ef4357a899bc973.tar.gz
horizon-0e8c19b115797ff934e84c105ef4357a899bc973.tar.bz2
horizon-0e8c19b115797ff934e84c105ef4357a899bc973.tar.xz
horizon-0e8c19b115797ff934e84c105ef4357a899bc973.zip
DiskMan: Fix all memory leaks
Diffstat (limited to 'diskman/diskman.cc')
-rw-r--r--diskman/diskman.cc9
1 files changed, 7 insertions, 2 deletions
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<Disk> 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<Disk> 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;
}