Messages in this thread | | | From | "Antonino A. Daplas" <> | Subject | Re: [Linux-fbdev-devel] 2.6.7 fbcon: set_con2fb on current console = crash | Date | Sat, 19 Jun 2004 18:03:10 +0800 |
| |
On Saturday 19 June 2004 17:28, Geert Uytterhoeven wrote: > On Sat, 19 Jun 2004, Antonino A. Daplas wrote: > > Thanks. Actually there's still a critical flaw in the set_con2fbmap > > code. For one, con2fb_map is never initialized. It's just fortunate that > > this array happens to be filled with zeroes so con2fb_map[n] will always > > return zero and registered_fb[0] happens to contain a valid info. So it > > works, by accident. > > According to the C standard, global variables are initialized to zero, > unless specified otherwise. >
I know, but what I meant was con2fb_map[] is never initialized by fbcon. So if the first valid fbdev is in registered_fb[1], then con2fbmap must be initialized to 1's by fbcon. It doesn't. Note, fbdev-2.4 does the initialization correctly.
So 2 critical flaws in the code:
1. con2fb_map[] is always zero-set 2. fbcon assumes that registered_fb[0] is always valid
Both flaws will manifest by doing this:
modprobe fbdev1 - in registered_fb[0] modprobe fbdev2 - in registered_fb[1] rmmod fbdev1 - registered_fb[0] becomes invalid modprobe fbcon - con2fb_map[] with zeroes instead of 1's and fbcon_startup looks for fb_info in registered_fb[0] instead of registered_fb[1]
Tony
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |