Print this page
NEX-15328 libdiskmgt: memleak in findevs()
Reviewed by: Alexander Eremin <alexander.eremin@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-15328 libdiskmgt: memleak in findevs()
Reviewed by: Alexander Eremin <alexander.eremin@nexenta.com>
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-14951 teach libdiskmgt about nvme, sata and xen
Reviewed by: Dan Fields <dan.fields@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>

@@ -149,25 +149,27 @@
         args->controller_listp = NULL;
         args->disk_listp = NULL;
 
         args->dev_walk_status = 0;
         args->handle = di_devlink_init(NULL, 0);
+        args->ph = di_prom_init();
 
         /*
          * Have to make several passes at this with the new devfs caching.
          * First, we find non-mpxio devices. Then we find mpxio/multipath
          * devices.
          */
         di_root = di_init("/", DINFOCACHE);
-        args->ph = di_prom_init();
         (void) di_walk_minor(di_root, NULL, 0, args, add_devs);
         di_fini(di_root);
 
         di_root = di_init("/", DINFOCPYALL|DINFOPATH);
         (void) di_walk_minor(di_root, NULL, 0, args, add_devs);
         di_fini(di_root);
 
+        if (args->ph != DI_PROM_HANDLE_NIL)
+                di_prom_fini(args->ph);
         (void) di_devlink_fini(&(args->handle));
 
         clean_paths(args);
 }