summaryrefslogtreecommitdiff
path: root/sysfs.c
diff options
context:
space:
mode:
authorJes Sorensen <Jes.Sorensen@redhat.com>2011-11-01 16:09:20 +0100
committerNeilBrown <neilb@suse.de>2011-11-02 10:48:53 +1100
commit93f1df335551a27b4d2cd1a3031ef6bf2a29809b (patch)
tree40b8893baed27f8565256e7a3d5a1ec1d3fd1e7f /sysfs.c
parentfb745c4bb4e9e788c96510f6be57d2d973e9a3fb (diff)
sysfs_unique_holder(): Check read() return value before using as buffer index
Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com> Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'sysfs.c')
-rw-r--r--sysfs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sysfs.c b/sysfs.c
index a5fcdd03..6c17c5e4 100644
--- a/sysfs.c
+++ b/sysfs.c
@@ -796,6 +796,8 @@ int sysfs_unique_holder(int devnum, long rdev)
}
n = read(fd, buf, sizeof(buf)-1);
close(fd);
+ if (n < 0)
+ continue;
buf[n] = 0;
if (sscanf(buf, "%d:%d%c", &mj, &mn, &c) != 3 ||
c != '\n') {