X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=blobdiff_plain;f=sysfs.c;h=ea7d52f6c025be17a47a1774e3bd5bec843fe261;hp=87d314c1ffcc85b39454891ac44f82c5cdf17383;hb=355726fa014fb9d656e6af92f0305e55af58de09;hpb=8c21018330e6adc15f347bd7c9e924866b8ca608 diff --git a/sysfs.c b/sysfs.c index 87d314c1..ea7d52f6 100644 --- a/sysfs.c +++ b/sysfs.c @@ -92,7 +92,7 @@ struct mdinfo *sysfs_read(int fd, int devnum, unsigned long options) char *dbase; struct mdinfo *sra; struct mdinfo *dev; - DIR *dir; + DIR *dir = NULL; struct dirent *de; sra = malloc(sizeof(*sra)); @@ -253,9 +253,12 @@ struct mdinfo *sysfs_read(int fd, int devnum, unsigned long options) dev->errors = strtoul(buf, NULL, 0); } } + closedir(dir); return sra; abort: + if (dir) + closedir(dir); sysfs_free(sra); return NULL; }