summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2007-12-14 20:13:51 +1100
committerNeil Brown <neilb@suse.de>2007-12-14 20:13:51 +1100
commit2faf1f5f635419a922cf0072c435a23a78b793a7 (patch)
tree7355ea91471a060372ddef16d884eeccc4e46a22
parentaba69144fd44fc261c943b0cec540751cfcd29bd (diff)
downloadmdadm-2faf1f5f635419a922cf0072c435a23a78b793a7.tar.gz
mdadm-2faf1f5f635419a922cf0072c435a23a78b793a7.tar.xz
mdadm-2faf1f5f635419a922cf0072c435a23a78b793a7.zip
Make sure sysfs_read never succeeds for a non-MD device.
... just in case.
-rw-r--r--sysfs.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sysfs.c b/sysfs.c
index 16744f1..1dbc680 100644
--- a/sysfs.c
+++ b/sysfs.c
@@ -76,7 +76,10 @@ struct sysarray *sysfs_read(int fd, int devnum, unsigned long options)
if (fd >= 0) {
struct stat stb;
- if (fstat(fd, &stb)) return NULL;
+ mdu_version_t vers;
+ if (fstat(fd, &stb)) return NULL;
+ if (ioctl(fd, RAID_VERSION, &vers) != 0)
+ return NULL;
if (major(stb.st_rdev)==9)
sprintf(sra->name, "md%d", minor(stb.st_rdev));
else