On Sat, Jul 18, 2009 at 03:39:00PM -0700, Joe Auricchio wrote: > > On 18 Jul, 2009, at 11:58 , Robert Millan wrote: >> On Sat, Jul 18, 2009 at 12:15:04AM -0700, Joe Auricchio wrote: >>> >>> This fixes a 100% reproducible and very annoying bug I've found: >>> Switch >>> to gfxterm and until your clear the screen or scroll, the last >>> position >>> of every line has a random junk character in random foreground and >>> background color. I believe the root cause is that the >>> virtual_screen's >>> text_buffer is uninitialized; as the cursor reaches a new position, >>> the >>> uninitialized junk data is drawn to the screen. Really, the entire >>> screen >>> is junk, but it's never marked dirty so it's never drawn. So let's >>> just >>> clear out the whole text_buffer when we set up the screen. >> >> But grub_virtual_screen_free() already set the whole structure to 0 at >> the >> beginning of grub_virtual_screen_setup(). >> >> Does a zero-filled screen result in garbage, or is something else >> overwriting >> it? > > grub_virtual_screen_free sets all of virtual_screen to 0, but not > virtual_screen.text_buffer. text_buffer just gets grub_freed. Later in > grub_virtual_screen_setup, a new text_buffer is grub_malloced. It's this > new text_buffer that my patch clears out.
So perhaps this can be solved simpler by replacing grub_malloc with grub_zalloc ? -- Robert Millan The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and how) you may access your data; but nobody's threatening your freedom: we still allow you to remove your data and not access it at all." _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel