summaryrefslogtreecommitdiffstats
path: root/sysfs.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2008-05-27 09:18:34 +1000
committerNeil Brown <neilb@suse.de>2008-05-27 09:18:34 +1000
commit355726fa014fb9d656e6af92f0305e55af58de09 (patch)
tree69e65aea75f361eeb656b8b480897392b467cd0d /sysfs.c
parent8c21018330e6adc15f347bd7c9e924866b8ca608 (diff)
downloadmdadm-355726fa014fb9d656e6af92f0305e55af58de09.tar.gz
mdadm-355726fa014fb9d656e6af92f0305e55af58de09.tar.xz
mdadm-355726fa014fb9d656e6af92f0305e55af58de09.zip
Remember to close directories when we are finished with them.
Diffstat (limited to 'sysfs.c')
-rw-r--r--sysfs.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sysfs.c b/sysfs.c
index 87d314c..ea7d52f 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;
}