]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - managemon.c
disk_init_and_add(): Fail if opening sysfs file descriptors fail
[thirdparty/mdadm.git] / managemon.c
index 9e0a34d758509b0d00b1a9f6634fab97c974d2e2..fceaeb9c41a073c9da884301b702ea30c1c3d2d7 100644 (file)
@@ -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;