]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
get_component_size(): Check read() return value for error before using it
authorJes Sorensen <Jes.Sorensen@redhat.com>
Wed, 2 Nov 2011 21:07:39 +0000 (08:07 +1100)
committerNeilBrown <neilb@suse.de>
Wed, 2 Nov 2011 21:07:39 +0000 (08:07 +1100)
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: NeilBrown <neilb@suse.de>
sysfs.c

diff --git a/sysfs.c b/sysfs.c
index 6c17c5e464d313652a42ba6b99c0237d1dc62eca..d923f7fbdd6e2f38271e610497477e858b3993dd 100644 (file)
--- a/sysfs.c
+++ b/sysfs.c
@@ -379,7 +379,7 @@ unsigned long long get_component_size(int fd)
                return 0;
        n = read(fd, fname, sizeof(fname));
        close(fd);
-       if (n == sizeof(fname))
+       if (n < 0 || n == sizeof(fname))
                return 0;
        fname[n] = 0;
        return strtoull(fname, NULL, 10) * 2;