[syslinux] COM32: console_ansi_raw() and later segfaults

Gene Cumm gene.cumm at gmail.com
Wed Dec 10 15:24:00 PST 2008


On Wed, Dec 10, 2008 at 6:14 PM, Gene Cumm <gene.cumm at gmail.com> wrote:
> On Wed, Dec 10, 2008 at 5:58 PM, H. Peter Anvin <hpa at zytor.com> wrote:
>> The big problem, I think, is that the COM32 console library isn't really
>> designed for switching between drivers -- in the case of closely related
>> drivers like this, it should work, but has never actually been tested.
>>
>> The difference between the raw and std consoles is which input driver is
>> used -- the equivalent to the Linux line discipline.  The best thing
>> would be to separate the console driver and the line discipline on the
>> input side, and create a real line discipline abstraction, which can
>> then be designed to explicitly be switched at runtime.
>>
>> It shouldn't even be that hard to do.
>>
>
> Well, I found the issue: console_ansi_std() is touching c_cflag but
> not c_lflag.  The next question is should it be touching both or just
> c_lflag?
>

Based on the <bits/termios.h> in my system, I think only c_lflag
should be touched and should also be ORd with ISIG (to allow ^C to
break out of the program).




More information about the Syslinux mailing list