2001-02-27 18:38:59

by Tigran Aivazian

[permalink] [raw]
Subject: [patch-2.4.2] bugfix -- ENXIO for read/write beyond end of raw device

Hi Linus,

Yes, I know that Stephen had fixed this bug ages ago but, nevertheless, it
is still present in 2.4.2 and I don't know about his plans for resending
the patch -- but it is a part of the set I maintain so I just wanted to
bring it to your attention. Small bug, small obvious fix -- why not
consider it sooner rather than later?

Regards,
Tigran

diff -urN -X dontdiff linux/drivers/char/raw.c vmfs/drivers/char/raw.c
--- linux/drivers/char/raw.c Mon Oct 2 04:35:15 2000
+++ vmfs/drivers/char/raw.c Thu Feb 22 07:21:26 2001
@@ -277,8 +277,11 @@

if ((*offp & sector_mask) || (size & sector_mask))
return -EINVAL;
- if ((*offp >> sector_bits) > limit)
+ if ((*offp >> sector_bits) >= limit) {
+ if (size)
+ return -ENXIO;
return 0;
+ }

/*
* We'll just use one kiobuf