{platform,super}-intel: Fix two resource leaks
The code did not free 'dir' allocated by opendir(). An additional
benefit is that this simplifies the for() loops.
Fixes: 60f0f54d
("IMSM: Add support for VMD")
Reviewed-by: NeilBrown <neilb@suse.com>
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
This commit is contained in:
parent
efdfcc9e95
commit
b913501173
|
@ -724,8 +724,10 @@ char *vmd_domain_to_controller(struct sys_dev *hba, char *buf)
|
|||
return NULL;
|
||||
|
||||
dir = opendir("/sys/bus/pci/drivers/vmd");
|
||||
if (!dir)
|
||||
return NULL;
|
||||
|
||||
for (ent = dir ? readdir(dir) : NULL; ent; ent = readdir(dir)) {
|
||||
for (ent = readdir(dir); ent; ent = readdir(dir)) {
|
||||
sprintf(path, "/sys/bus/pci/drivers/vmd/%s/domain/device",
|
||||
ent->d_name);
|
||||
|
||||
|
@ -734,8 +736,11 @@ char *vmd_domain_to_controller(struct sys_dev *hba, char *buf)
|
|||
|
||||
if (strncmp(buf, hba->path, strlen(buf)) == 0) {
|
||||
sprintf(path, "/sys/bus/pci/drivers/vmd/%s", ent->d_name);
|
||||
closedir(dir);
|
||||
return realpath(path, buf);
|
||||
}
|
||||
}
|
||||
|
||||
closedir(dir);
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -1781,7 +1781,10 @@ static int print_vmd_attached_devs(struct sys_dev *hba)
|
|||
* this hba
|
||||
*/
|
||||
dir = opendir("/sys/bus/pci/drivers/nvme");
|
||||
for (ent = dir ? readdir(dir) : NULL; ent; ent = readdir(dir)) {
|
||||
if (!dir)
|
||||
return 1;
|
||||
|
||||
for (ent = readdir(dir); ent; ent = readdir(dir)) {
|
||||
int n;
|
||||
|
||||
/* is 'ent' a device? check that the 'subsystem' link exists and
|
||||
|
@ -1814,6 +1817,7 @@ static int print_vmd_attached_devs(struct sys_dev *hba)
|
|||
free(rp);
|
||||
}
|
||||
|
||||
closedir(dir);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue