From: Jes Sorensen Date: Wed, 2 Nov 2011 21:08:09 +0000 (+1100) Subject: disk_init_and_add(): Fail if opening sysfs file descriptors fail X-Git-Tag: mdadm-3.2.3~71 X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fmdadm.git;a=commitdiff_plain;h=3e1d79b2d66e06ee33df57006f1c15404f849738 disk_init_and_add(): Fail if opening sysfs file descriptors fail Signed-off-by: Jes Sorensen Signed-off-by: NeilBrown --- diff --git a/managemon.c b/managemon.c index 9e0a34d7..fceaeb9c 100644 --- a/managemon.c +++ b/managemon.c @@ -409,7 +409,13 @@ static int disk_init_and_add(struct mdinfo *disk, struct mdinfo *clone, *disk = *clone; disk->recovery_fd = sysfs_open(aa->devnum, disk->sys_name, "recovery_start"); + if (disk->recovery_fd < 0) + return -1; disk->state_fd = sysfs_open(aa->devnum, disk->sys_name, "state"); + if (disk->state_fd < 0) { + close(disk->recovery_fd); + return -1; + } disk->prev_state = read_dev_state(disk->state_fd); disk->curr_state = disk->prev_state; disk->next = aa->info.devs;