From: Chris Purnell (cjp@lost.org.uk)
Date: Sun 18 Mar 2001 - 06:36:22 IST
On Fri, Mar 16, 2001 at 06:31:03AM -0600, Burkhard Kohl wrote:
> I have a couple of applications which generate some pixels far
> outside xdim/ydim. When running vith VESA this is no problem,
> vga_setpixel handles these properly. But with FBdev my applications
> receive a signal 11, which I believe is not the proper behaviour.
> I am running a VESA FBdev with Mode 23 (1024x768x32K) on a Riva128
> based card (kernel 2.2.18) and svgalib-1.9.7.
I think you mean vga_drawpixel. vga_drawpixel() does no bounds
checking on the x/y values. This is not normally fatal because
of the paged access of the memory on the vga cards. However the
fbdev driver emulates this paged memory. The crash occurs because
fbdev_setpage() has no bounds checking.
The following patch should make the fbdev driver better emulate
the behaviour of the other drivers.
--- fbdev.c.orig Sun Mar 18 03:49:32 2001
+++ fbdev.c Sun Mar 18 04:09:39 2001
@@ -124,6 +124,8 @@
{
static int oldpage = 0;
+ page &= (fbdev_startaddressrange >> 16);
+
if (page != oldpage)
{
// munmap(BANKED_MEM_POINTER, __svgalib_banked_mem_size);
--
Christopher John Purnell | I thought I'd found a reason to live
http://www.lost.org.uk/ | Just like before when I was a child
--------------------------| Only to find that dreams made of sand
What gods do you pray to? | Would just fall apart and slip through my hands
------------------------------------------------------------------
Unsubscribe: To: listbot@svgalib.org
Body: unsubscribe linux-svgalib
This archive was generated by hypermail 2.1.4 : Wed 21 Jan 2004 - 22:10:23 IST