Re: [PATCH] Chardev checking of overlapping ranges is incorrect.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 08, 2006 at 04:52:58PM -0400, Amos Waterland wrote:
> On Mon, Aug 07, 2006 at 11:47:53PM -0700, Andrew Morton wrote:
> > On Mon, 7 Aug 2006 17:55:55 -0500 [email protected] (Linas Vepstas) wrote:
> > > The current code in register_chrdev_region() attempts to check 
> > > for overlapping regions of minor device numbers, but performs 
> > > that check incorrectly. For example, if a device with minor 
> > > numbers 128, 129, 130 is registered first, and a device with 
> > > minor number 3,4,5 is registered later, then the later range
> > > is incorrectly identified as "overlapping" (since 130>3), 
> > > when clearly this is the wrong conclusion.
> 
> Hi Andrew.  It does fix the original bug, but it introduces the bug that
> Linas pointed out.  After looking at Linas' fix and finding an
> off-by-one error in his code, 

Ooops

> Can you please back out my original patch and use this instead?  I have
> run it through the test harness and I am much more confident in its
> correctness.  Linas can you take a look at this and make sure you agree?

Actually, there's still a problem. An added device could still 
overlap with a previously added device and not be detected. 
We should keep the devices in order, and check that the region
fits in between the last and the next device.  So, for example,
the following will make the latest patch accept an invalid region:

First, add maj=x, minor=64-127
Next, add  maj=x, minor=0-63
Next, add  maj=x, minor=32-63

When going to insert the third chardev, the for-loop will catch 
the first elt in the chain, do the bounds-check, and add it
without complaint.  I'll try a patch shortly.

--linas

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux