linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* fbcmap: non working tests on unsigned cmap->start
@ 2009-04-21 14:26 Roel Kluin
  2009-04-23 20:41 ` Andrew Morton
  0 siblings, 1 reply; 8+ messages in thread
From: Roel Kluin @ 2009-04-21 14:26 UTC (permalink / raw)
  To: adaplas; +Cc: linux-fbdev-devel, lkml

vi include/linux/fb.h +478

Note that struct fb_cmap_user cmap->start in fb_set_user_cmap() is unsigned.
Should there maybe be a test:

if (cmap->start > MAX || ...)

(and what should MAX be then?)

Otherwise you may want to apply the cleanup patch below

Roel
------------------------------>8-------------8<---------------------------------
Remove redundant tests on unsigned

Signed-off-by: Roel Kluin <roel.kluin@gmail.com> 
---
diff --git a/drivers/video/fbcmap.c b/drivers/video/fbcmap.c
index f53b9f1..958bf4e 100644
--- a/drivers/video/fbcmap.c
+++ b/drivers/video/fbcmap.c
@@ -266,8 +266,7 @@ int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info)
 		rc = -ENODEV;
 		goto out;
 	}
-	if (cmap->start < 0 || (!info->fbops->fb_setcolreg &&
-				!info->fbops->fb_setcmap)) {
+	if (!info->fbops->fb_setcolreg && !info->fbops->fb_setcmap) {
 		rc = -EINVAL;
 		goto out1;
 	}

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: fbcmap: non working tests on unsigned cmap->start
  2009-04-21 14:26 fbcmap: non working tests on unsigned cmap->start Roel Kluin
@ 2009-04-23 20:41 ` Andrew Morton
  2009-04-23 21:47   ` [Linux-fbdev-devel] " Ville Syrjälä
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Morton @ 2009-04-23 20:41 UTC (permalink / raw)
  To: Roel Kluin; +Cc: adaplas, linux-fbdev-devel, linux-kernel

On Tue, 21 Apr 2009 16:26:33 +0200
Roel Kluin <roel.kluin@gmail.com> wrote:

> vi include/linux/fb.h +478
> 
> Note that struct fb_cmap_user cmap->start in fb_set_user_cmap() is unsigned.
> Should there maybe be a test:
> 
> if (cmap->start > MAX || ...)
> 
> (and what should MAX be then?)
> 
> Otherwise you may want to apply the cleanup patch below
> 
> Roel
> ------------------------------>8-------------8<---------------------------------
> Remove redundant tests on unsigned
> 
> Signed-off-by: Roel Kluin <roel.kluin@gmail.com> 
> ---
> diff --git a/drivers/video/fbcmap.c b/drivers/video/fbcmap.c
> index f53b9f1..958bf4e 100644
> --- a/drivers/video/fbcmap.c
> +++ b/drivers/video/fbcmap.c
> @@ -266,8 +266,7 @@ int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info)
>  		rc = -ENODEV;
>  		goto out;
>  	}
> -	if (cmap->start < 0 || (!info->fbops->fb_setcolreg &&
> -				!info->fbops->fb_setcmap)) {
> +	if (!info->fbops->fb_setcolreg && !info->fbops->fb_setcmap) {
>  		rc = -EINVAL;
>  		goto out1;
>  	}

argh.

- Perhaps userspace can kill the kernel by sending a "negative"
  `start'.  Removing the test will make it even less likely that we'll
  fix this bug.

- If this bug doesn't exist, and there _is_ userspace which is
  legitimately sending in "negative" values of `start' (unlikely?) then
  we will break userspace if we fix this comparison.

IOW, I don't have enough knowledge about this code to be able to know
what to do.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Linux-fbdev-devel] fbcmap: non working tests on unsigned cmap->start
  2009-04-23 20:41 ` Andrew Morton
@ 2009-04-23 21:47   ` Ville Syrjälä
  2009-04-23 21:56     ` Andrew Morton
  2009-04-26 12:20     ` Roel Kluin
  0 siblings, 2 replies; 8+ messages in thread
From: Ville Syrjälä @ 2009-04-23 21:47 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Roel Kluin, linux-fbdev-devel, linux-kernel, adaplas

On Thu, Apr 23, 2009 at 01:41:10PM -0700, Andrew Morton wrote:
> On Tue, 21 Apr 2009 16:26:33 +0200
> Roel Kluin <roel.kluin@gmail.com> wrote:
> 
> > vi include/linux/fb.h +478
> > 
> > Note that struct fb_cmap_user cmap->start in fb_set_user_cmap() is unsigned.
> > Should there maybe be a test:
> > 
> > if (cmap->start > MAX || ...)
> > 
> > (and what should MAX be then?)
> > 
> > Otherwise you may want to apply the cleanup patch below
> > 
> > Roel
> > ------------------------------>8-------------8<---------------------------------
> > Remove redundant tests on unsigned
> > 
> > Signed-off-by: Roel Kluin <roel.kluin@gmail.com> 
> > ---
> > diff --git a/drivers/video/fbcmap.c b/drivers/video/fbcmap.c
> > index f53b9f1..958bf4e 100644
> > --- a/drivers/video/fbcmap.c
> > +++ b/drivers/video/fbcmap.c
> > @@ -266,8 +266,7 @@ int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info)
> >  		rc = -ENODEV;
> >  		goto out;
> >  	}
> > -	if (cmap->start < 0 || (!info->fbops->fb_setcolreg &&
> > -				!info->fbops->fb_setcmap)) {
> > +	if (!info->fbops->fb_setcolreg && !info->fbops->fb_setcmap) {
> >  		rc = -EINVAL;
> >  		goto out1;
> >  	}
> 
> argh.
> 
> - Perhaps userspace can kill the kernel by sending a "negative"
>   `start'.  Removing the test will make it even less likely that we'll
>   fix this bug.

Shouldn't happen. 'start' is used as the starting index for the hardware
palette, 'start+len-1' is the last index. All drivers should already check
the passed values since the maximum index depends on the display mode.
And I suppose the worst thing that could happen if the driver fails to
check the values would be incorrect colors.

> - If this bug doesn't exist, and there _is_ userspace which is
>   legitimately sending in "negative" values of `start' (unlikely?) then
>   we will break userspace if we fix this comparison.

The comparison will always be false since 'start' is unsigned so how
would anything break?

-- 
Ville Syrjälä
syrjala@sci.fi
http://www.sci.fi/~syrjala/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Linux-fbdev-devel] fbcmap: non working tests on unsigned cmap->start
  2009-04-23 21:47   ` [Linux-fbdev-devel] " Ville Syrjälä
@ 2009-04-23 21:56     ` Andrew Morton
  2009-04-26 12:20     ` Roel Kluin
  1 sibling, 0 replies; 8+ messages in thread
From: Andrew Morton @ 2009-04-23 21:56 UTC (permalink / raw)
  To: Ville Syrjälä
  Cc: roel.kluin, linux-fbdev-devel, linux-kernel, adaplas

On Fri, 24 Apr 2009 00:47:38 +0300
Ville Syrj__l__ <syrjala@sci.fi> wrote:

> On Thu, Apr 23, 2009 at 01:41:10PM -0700, Andrew Morton wrote:
> > On Tue, 21 Apr 2009 16:26:33 +0200
> > Roel Kluin <roel.kluin@gmail.com> wrote:
> > 
> > > vi include/linux/fb.h +478
> > > 
> > > Note that struct fb_cmap_user cmap->start in fb_set_user_cmap() is unsigned.
> > > Should there maybe be a test:
> > > 
> > > if (cmap->start > MAX || ...)
> > > 
> > > (and what should MAX be then?)
> > > 
> > > Otherwise you may want to apply the cleanup patch below
> > > 
> > > Roel
> > > ------------------------------>8-------------8<---------------------------------
> > > Remove redundant tests on unsigned
> > > 
> > > Signed-off-by: Roel Kluin <roel.kluin@gmail.com> 
> > > ---
> > > diff --git a/drivers/video/fbcmap.c b/drivers/video/fbcmap.c
> > > index f53b9f1..958bf4e 100644
> > > --- a/drivers/video/fbcmap.c
> > > +++ b/drivers/video/fbcmap.c
> > > @@ -266,8 +266,7 @@ int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info)
> > >  		rc = -ENODEV;
> > >  		goto out;
> > >  	}
> > > -	if (cmap->start < 0 || (!info->fbops->fb_setcolreg &&
> > > -				!info->fbops->fb_setcmap)) {
> > > +	if (!info->fbops->fb_setcolreg && !info->fbops->fb_setcmap) {
> > >  		rc = -EINVAL;
> > >  		goto out1;
> > >  	}
> > 
> > argh.
> > 
> > - Perhaps userspace can kill the kernel by sending a "negative"
> >   `start'.  Removing the test will make it even less likely that we'll
> >   fix this bug.
> 
> Shouldn't happen. 'start' is used as the starting index for the hardware
> palette, 'start+len-1' is the last index. All drivers should already check
> the passed values since the maximum index depends on the display mode.
> And I suppose the worst thing that could happen if the driver fails to
> check the values would be incorrect colors.

OK.

I wonder if all drivers _do_ check.  It probably doesn't matter much, as
it's a privileged operation (I assume?)

> > - If this bug doesn't exist, and there _is_ userspace which is
> >   legitimately sending in "negative" values of `start' (unlikely?) then
> >   we will break userspace if we fix this comparison.
> 
> The comparison will always be false since 'start' is unsigned so how
> would anything break?

By "fix this comparison" I meant converting it to

	if ((signed)cmap->start < 0)

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: fbcmap: non working tests on unsigned cmap->start
  2009-04-23 21:47   ` [Linux-fbdev-devel] " Ville Syrjälä
  2009-04-23 21:56     ` Andrew Morton
@ 2009-04-26 12:20     ` Roel Kluin
  2009-04-26 13:15       ` Ville Syrjälä
  1 sibling, 1 reply; 8+ messages in thread
From: Roel Kluin @ 2009-04-26 12:20 UTC (permalink / raw)
  To: Andrew Morton, Roel Kluin, linux-fbdev-devel, linux-kernel,
	adaplas

cmap->start is unsigned, A negative start could result in incorrect
colors. `start' is used as the starting index for the hardware palette,
'start+len-1' is the last index.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
---
>>> vi include/linux/fb.h +478
>>>
>>> Note that struct fb_cmap_user cmap->start in fb_set_user_cmap() is unsigned.
>>> Should there maybe be a test:
>>>
>>> if (cmap->start > MAX || ...)
>>>
>>> (and what should MAX be then?)
>>>

> On Thu, Apr 23, 2009 at 01:41:10PM -0700, Andrew Morton wrote:
>> argh.
>>
>> - Perhaps userspace can kill the kernel by sending a "negative"
>>   `start'.  Removing the test will make it even less likely that we'll
>>   fix this bug.
> 
> Shouldn't happen. 'start' is used as the starting index for the hardware
> palette, 'start+len-1' is the last index. All drivers should already check
> the passed values since the maximum index depends on the display mode.
> And I suppose the worst thing that could happen if the driver fails to
> check the values would be incorrect colors.

Thanks for your explanation, I think this should fix it?

diff --git a/drivers/video/fbcmap.c b/drivers/video/fbcmap.c
index f53b9f1..ea62d87 100644
--- a/drivers/video/fbcmap.c
+++ b/drivers/video/fbcmap.c
@@ -266,7 +266,7 @@ int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info)
 		rc = -ENODEV;
 		goto out;
 	}
-	if (cmap->start < 0 || (!info->fbops->fb_setcolreg &&
+	if (cmap->start >= cmap->len || (!info->fbops->fb_setcolreg &&
 				!info->fbops->fb_setcmap)) {
 		rc = -EINVAL;
 		goto out1;


------------------------------------------------------------------------------
Crystal Reports &#45; New Free Runtime and 30 Day Trial
Check out the new simplified licensign option that enables unlimited
royalty&#45;free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: fbcmap: non working tests on unsigned cmap->start
  2009-04-26 12:20     ` Roel Kluin
@ 2009-04-26 13:15       ` Ville Syrjälä
  2009-04-27 11:58         ` Roel Kluin
  0 siblings, 1 reply; 8+ messages in thread
From: Ville Syrjälä @ 2009-04-26 13:15 UTC (permalink / raw)
  To: Roel Kluin; +Cc: Andrew Morton, linux-fbdev-devel, linux-kernel, adaplas

On Sun, Apr 26, 2009 at 02:20:47PM +0200, Roel Kluin wrote:
> cmap->start is unsigned, A negative start could result in incorrect
> colors. `start' is used as the starting index for the hardware palette,
> 'start+len-1' is the last index.
> 
> Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
> ---
> >>> vi include/linux/fb.h +478
> >>>
> >>> Note that struct fb_cmap_user cmap->start in fb_set_user_cmap() is unsigned.
> >>> Should there maybe be a test:
> >>>
> >>> if (cmap->start > MAX || ...)
> >>>
> >>> (and what should MAX be then?)
> >>>
> 
> > On Thu, Apr 23, 2009 at 01:41:10PM -0700, Andrew Morton wrote:
> >> argh.
> >>
> >> - Perhaps userspace can kill the kernel by sending a "negative"
> >>   `start'.  Removing the test will make it even less likely that we'll
> >>   fix this bug.
> > 
> > Shouldn't happen. 'start' is used as the starting index for the hardware
> > palette, 'start+len-1' is the last index. All drivers should already check
> > the passed values since the maximum index depends on the display mode.
> > And I suppose the worst thing that could happen if the driver fails to
> > check the values would be incorrect colors.
> 
> Thanks for your explanation, I think this should fix it?
> 
> diff --git a/drivers/video/fbcmap.c b/drivers/video/fbcmap.c
> index f53b9f1..ea62d87 100644
> --- a/drivers/video/fbcmap.c
> +++ b/drivers/video/fbcmap.c
> @@ -266,7 +266,7 @@ int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info)
>  		rc = -ENODEV;
>  		goto out;
>  	}
> -	if (cmap->start < 0 || (!info->fbops->fb_setcolreg &&
> +	if (cmap->start >= cmap->len || (!info->fbops->fb_setcolreg &&
>  				!info->fbops->fb_setcmap)) {
>  		rc = -EINVAL;
>  		goto out1;

That's not correct. There's nothing wrong with having 'start' >= 'len'.

You would rather need something like
'if (start+len > 1 << max(red.len, green.len, blue.len, transp.len))'
and a check to make sure that start+len doesn't overflow.

Oh and I guess it should also check that the visual is pseudocolor or
directcolor.

-- 
Ville Syrjälä
syrjala@sci.fi
http://www.sci.fi/~syrjala/

------------------------------------------------------------------------------
Crystal Reports &#45; New Free Runtime and 30 Day Trial
Check out the new simplified licensign option that enables unlimited
royalty&#45;free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: fbcmap: non working tests on unsigned cmap->start
  2009-04-26 13:15       ` Ville Syrjälä
@ 2009-04-27 11:58         ` Roel Kluin
  2009-04-27 12:21           ` [Linux-fbdev-devel] " Geert Uytterhoeven
  0 siblings, 1 reply; 8+ messages in thread
From: Roel Kluin @ 2009-04-27 11:58 UTC (permalink / raw)
  To: Roel Kluin, Andrew Morton, linux-fbdev-devel, linux-kernel,
	adaplas

Ville Syrjälä wrote:
> On Sun, Apr 26, 2009 at 02:20:47PM +0200, Roel Kluin wrote:
>> cmap->start is unsigned,

>>> On Thu, Apr 23, 2009 at 01:41:10PM -0700, Andrew Morton wrote:
>>>> argh.
>>>>
>>>> - Perhaps userspace can kill the kernel by sending a "negative"
>>>>   `start'.  Removing the test will make it even less likely that we'll
>>>>   fix this bug.
>>> Shouldn't happen. 'start' is used as the starting index for the hardware
>>> palette, 'start+len-1' is the last index. All drivers should already check
>>> the passed values since the maximum index depends on the display mode.
>>> And I suppose the worst thing that could happen if the driver fails to
>>> check the values would be incorrect colors.

> You would rather need something like
> 'if (start+len > 1 << max(red.len, green.len, blue.len, transp.len))'

what do you mean with `red.len'? is that `info->var.red.length'?

> and a check to make sure that start+len doesn't overflow.
> 
> Oh and I guess it should also check that the visual is pseudocolor or
> directcolor.

I am fairly new so please review carefully.

Not yet signed off-by: Roel Kluin <roel.kluin@gmail.com>
---
diff --git a/drivers/video/fbcmap.c b/drivers/video/fbcmap.c
index f53b9f1..b34e74e 100644
--- a/drivers/video/fbcmap.c
+++ b/drivers/video/fbcmap.c
@@ -249,6 +249,7 @@ int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info)
 {
 	int rc, size = cmap->len * sizeof(u16);
 	struct fb_cmap umap;
+	__u32 rgba_max = 0;
 
 	memset(&umap, 0, sizeof(struct fb_cmap));
 	rc = fb_alloc_cmap(&umap, cmap->len, cmap->transp != NULL);
@@ -261,13 +262,27 @@ int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info)
 		rc = -EFAULT;
 		goto out;
 	}
+
+	if (cmap->start + cmap->len < cmap->start) {
+		rc = -EINVAL;
+		goto out;
+	}
+
 	umap.start = cmap->start;
 	if (!lock_fb_info(info)) {
 		rc = -ENODEV;
 		goto out;
 	}
-	if (cmap->start < 0 || (!info->fbops->fb_setcolreg &&
-				!info->fbops->fb_setcmap)) {
+
+	rgba_max = max(info->var.red.length, info->var.green.length);
+	rgba_max = max(rgba_max, info->var.blue.length);
+	rgba_max = max(rgba_max, info->var.transp.length);
+
+	if (cmap->start + cmap->len > 1 << rgba_max ||
+			!(info->fbops->fb_setcolreg ||
+				info->fbops->fb_setcmap) ||
+			!(info->fix.visual == FB_VISUAL_PSEUDOCOLOR ||
+				info->fix.visual == FB_VISUAL_TRUECOLOR)) {
 		rc = -EINVAL;
 		goto out1;
 	}

------------------------------------------------------------------------------
Crystal Reports &#45; New Free Runtime and 30 Day Trial
Check out the new simplified licensign option that enables unlimited
royalty&#45;free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [Linux-fbdev-devel] fbcmap: non working tests on unsigned  cmap->start
  2009-04-27 11:58         ` Roel Kluin
@ 2009-04-27 12:21           ` Geert Uytterhoeven
  0 siblings, 0 replies; 8+ messages in thread
From: Geert Uytterhoeven @ 2009-04-27 12:21 UTC (permalink / raw)
  To: Roel Kluin; +Cc: Andrew Morton, linux-fbdev-devel, linux-kernel, adaplas

On Mon, Apr 27, 2009 at 13:58, Roel Kluin <roel.kluin@gmail.com> wrote:
> Ville Syrjälä wrote:
>> On Sun, Apr 26, 2009 at 02:20:47PM +0200, Roel Kluin wrote:
>>> cmap->start is unsigned,
>
>>>> On Thu, Apr 23, 2009 at 01:41:10PM -0700, Andrew Morton wrote:
>>>>> argh.
>>>>>
>>>>> - Perhaps userspace can kill the kernel by sending a "negative"
>>>>>   `start'.  Removing the test will make it even less likely that we'll
>>>>>   fix this bug.
>>>> Shouldn't happen. 'start' is used as the starting index for the hardware
>>>> palette, 'start+len-1' is the last index. All drivers should already check
>>>> the passed values since the maximum index depends on the display mode.
>>>> And I suppose the worst thing that could happen if the driver fails to
>>>> check the values would be incorrect colors.
>
>> You would rather need something like
>> 'if (start+len > 1 << max(red.len, green.len, blue.len, transp.len))'
>
> what do you mean with `red.len'? is that `info->var.red.length'?

That's correct.

>> and a check to make sure that start+len doesn't overflow.
>>
>> Oh and I guess it should also check that the visual is pseudocolor or
>> directcolor.
>
> I am fairly new so please review carefully.
>
> Not yet signed off-by: Roel Kluin <roel.kluin@gmail.com>

Looks OK, thx!

> ---
> diff --git a/drivers/video/fbcmap.c b/drivers/video/fbcmap.c
> index f53b9f1..b34e74e 100644
> --- a/drivers/video/fbcmap.c
> +++ b/drivers/video/fbcmap.c
> @@ -249,6 +249,7 @@ int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info)
>  {
>        int rc, size = cmap->len * sizeof(u16);
>        struct fb_cmap umap;
> +       __u32 rgba_max = 0;
>
>        memset(&umap, 0, sizeof(struct fb_cmap));
>        rc = fb_alloc_cmap(&umap, cmap->len, cmap->transp != NULL);
> @@ -261,13 +262,27 @@ int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info)
>                rc = -EFAULT;
>                goto out;
>        }
> +
> +       if (cmap->start + cmap->len < cmap->start) {
> +               rc = -EINVAL;
> +               goto out;
> +       }
> +
>        umap.start = cmap->start;
>        if (!lock_fb_info(info)) {
>                rc = -ENODEV;
>                goto out;
>        }
> -       if (cmap->start < 0 || (!info->fbops->fb_setcolreg &&
> -                               !info->fbops->fb_setcmap)) {
> +
> +       rgba_max = max(info->var.red.length, info->var.green.length);
> +       rgba_max = max(rgba_max, info->var.blue.length);
> +       rgba_max = max(rgba_max, info->var.transp.length);
> +
> +       if (cmap->start + cmap->len > 1 << rgba_max ||
> +                       !(info->fbops->fb_setcolreg ||
> +                               info->fbops->fb_setcmap) ||
> +                       !(info->fix.visual == FB_VISUAL_PSEUDOCOLOR ||
> +                               info->fix.visual == FB_VISUAL_TRUECOLOR)) {
>                rc = -EINVAL;
>                goto out1;
>        }
>
> ------------------------------------------------------------------------------
> Crystal Reports &#45; New Free Runtime and 30 Day Trial
> Check out the new simplified licensign option that enables unlimited
> royalty&#45;free distribution of the report engine for externally facing
> server and web deployment.
> http://p.sf.net/sfu/businessobjects
> _______________________________________________
> Linux-fbdev-devel mailing list
> Linux-fbdev-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel
>



-- 
Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-04-27 12:21 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-21 14:26 fbcmap: non working tests on unsigned cmap->start Roel Kluin
2009-04-23 20:41 ` Andrew Morton
2009-04-23 21:47   ` [Linux-fbdev-devel] " Ville Syrjälä
2009-04-23 21:56     ` Andrew Morton
2009-04-26 12:20     ` Roel Kluin
2009-04-26 13:15       ` Ville Syrjälä
2009-04-27 11:58         ` Roel Kluin
2009-04-27 12:21           ` [Linux-fbdev-devel] " Geert Uytterhoeven

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).