dmraid/dmraid-fdleak.patch
OBS User autobuild 36d526624e Accepting request 22283 from Base:System
Copy from Base:System/dmraid based on submit request 22283 from user prusnak

OBS-URL: https://build.opensuse.org/request/show/22283
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/dmraid?expand=0&rev=27
2009-10-20 22:10:22 +00:00

42 lines
1.6 KiB
Diff

Index: libdmraid-events/libdmraid-events.c
===================================================================
--- libdmraid-events/libdmraid-events.c.orig 2008-07-18 23:30:05.000000000 +0200
+++ libdmraid-events/libdmraid-events.c 2009-10-05 23:39:07.000000000 +0200
@@ -180,6 +180,7 @@ static int _repopulate(const char* devic
}
fscanf(fd, "%s", curr->raid_mem[curr->num_sata_drives].major_minor);
fclose(fd);
+ closedir(dir);
curr->raid_mem[curr->num_sata_drives].port_num = atoi(dir_ent[i]->d_name);
syslog(LOG_INFO, "Added disk %s (%s) port=%i\n",
disk, curr->raid_mem[curr->num_sata_drives].major_minor, curr->raid_mem[curr->num_sata_drives].port_num);
@@ -969,6 +970,7 @@ int register_device(const char *device,
}
fscanf(fd, "%s", rv_next->raid_mem[m].major_minor);
fclose(fd);
+ closedir(dir);
rv_next->raid_mem[m].port_num = atoi(dir_ent[j]->d_name);
m++;
break;
Index: lib/device/partition.c
===================================================================
--- lib/device/partition.c.orig 2009-10-05 23:39:06.000000000 +0200
+++ lib/device/partition.c 2009-10-06 00:19:12.000000000 +0200
@@ -30,12 +30,15 @@ _remove_subset_partitions(struct lib_con
/* There is no way to enumerate partitions */
for (part.pno = 1; part.pno <= 256; part.pno++) {
if (ioctl(fd, BLKPG, &io) < 0 && errno != ENXIO &&
- (part.pno < 16 || errno != EINVAL))
+ (part.pno < 16 || errno != EINVAL)) {
+ close(fd);
LOG_ERR(lc, 0,
"removing part %d from %s: %s\n",
part.pno, rd->di->path,
strerror(errno));
+ }
}
+ close(fd);
}
return 1;
}