OpenWrt packages
Sign in or create your account | Project List | Help
OpenWrt packages Git Source Tree
Root/
| 1 | Index: svgalib-1.4.3/src/fbdev.c |
| 2 | =================================================================== |
| 3 | --- svgalib-1.4.3.orig/src/fbdev.c 2011-01-06 14:24:59.000000000 +0100 |
| 4 | +++ svgalib-1.4.3/src/fbdev.c 2011-01-06 14:27:39.000000000 +0100 |
| 5 | @@ -141,9 +141,17 @@ |
| 6 | if (page != oldpage) |
| 7 | { |
| 8 | // munmap(BANKED_MEM_POINTER, __svgalib_banked_mem_size); |
| 9 | - mmap(BANKED_MEM_POINTER, __svgalib_banked_mem_size, |
| 10 | + long size = __svgalib_banked_mem_size; |
| 11 | + long offs = page * __svgalib_banked_mem_size; |
| 12 | + if (size + offs > __svgalib_linear_mem_size) |
| 13 | + size = __svgalib_linear_mem_size - offs; |
| 14 | + if (size <= 0) { |
| 15 | + fprintf (stderr, "invalid page %i requested", page); |
| 16 | + } |
| 17 | + |
| 18 | + mmap(BANKED_MEM_POINTER, size, |
| 19 | PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED, |
| 20 | - fbdev_fd, page * __svgalib_banked_mem_size); |
| 21 | + fbdev_fd, offs); |
| 22 | oldpage = page; |
| 23 | } |
| 24 | } |
| 25 |
