All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: ESCape issue with 1.1.3.2
@ 2002-06-19  3:01 Stas Sergeev
  2002-06-19 10:23 ` Bart Oldeman
  0 siblings, 1 reply; 9+ messages in thread
From: Stas Sergeev @ 2002-06-19  3:01 UTC (permalink / raw)
  To: linux-msdos

Hello.

Bart Oldeman wrote:
> Anyhow, the following cures it for me:
> -               if (key == NULL) {
> +               if (key == NULL && symbol != KEY_ESC) {
I think this will cause a null
pointer dereference later in
k_printf() so you have to also
add a check.


^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: ESCape issue with 1.1.3.2
@ 2002-06-19 12:45 Stas Sergeev
  2002-06-19 21:50 ` Bart Oldeman
  0 siblings, 1 reply; 9+ messages in thread
From: Stas Sergeev @ 2002-06-19 12:45 UTC (permalink / raw)
  To: linux-msdos

Hello.

Bart Oldeman wrote:
>> I think this will cause a null
>> pointer dereference later in
> You are right;
I think that the real problem with
this is that as soon as the low mem
is mapped, we are no longer receive
a SIGSEGV on a null dereference, so
such dereferences may be unnumbered
all around the code...

> here's a second fix (including the hitimer stuff for
> various cases, which in turn includes a fix from you
Actually when I have found that
overflow in miscemu.c (which later
turned out to be a miscompilation of
gcc-2.96-RH) I searched and looked
into the keyboard case and even those
lock-up reports came to my mind, but
I considered that code to be safe
(the t_dif might not exceed the
src_tv.tv_usec value).
Even now I don't see how it can
overflow, but well, maybe I am overlooking
some corner cases, let's see if it fixes
the problem...


^ permalink raw reply	[flat|nested] 9+ messages in thread
* ESCape issue with 1.1.3.2
@ 2002-06-18 21:10 Roger Ripley
  2002-06-18 23:40 ` Bart Oldeman
  0 siblings, 1 reply; 9+ messages in thread
From: Roger Ripley @ 2002-06-18 21:10 UTC (permalink / raw)
  To: linux-msdos

Hi,

I'm using Dosemu 1.1.3.2 with MS-DOS 6.22, and under the
slang terminal mode, I now have to press ESC twice, in very
rapid succession, in order for the keypress to be
registered.  This was not an issue with 1.1.3.1 or 1.0.2.
I have the problem whether TERM=linux or TERM=vt220.  The
easiest way to reduplicate the issue is to press ESC at the
command.com prompt and see if the "\" and newline show up.

This is the log excerpt for the single ESC press:

KBD: do_slang_getkeys()
KBD: cc found 1 characters (Xlate)
KBD: do_slang_getkeys() found 1 bytes
KBD: cc found -1 characters (Xlate)
KBD: got ESC character
KBD: slang got single ESC

And for the double quick ESC presses:

KBD: do_slang_getkeys()
KBD: cc found 1 characters (Xlate)
KBD: do_slang_getkeys() found 1 bytes
KBD: cc found -1 characters (Xlate)
KBD: got ESC character
KBD: do_slang_getkeys()
KBD: cc found 1 characters (Xlate)
KBD: do_slang_getkeys() found 2 bytes
KBD: scan=0000001b Shift_Flags=00000000 str[0]=3 str='^[^['
len=2
KBD: slang_send_scancode(ls_flags=0000001b, lscan=0000001b)
put_symbol: modifiers=0000 keysym=001b
put_keynum_r: old_make:0 make:1 key:01
translate_key: make=1, key=0001, input
KBD: translate(shiftstate=0000, key=0001, input)
KBD: translate(shiftstate=0000, key=0001, input)
KBD: translated key = 001b
KBD: writing to queue: scan=00000001
KBD: resize queue 0->255 head=0 tail=0 level=0
KBD: queuelevel=1
KBD: read queue: raw=01
KBD: queuelevel=0
8042: scheduling IRQ1
put_symbol: modifiers=0000 keysym=001b
put_keynum_r: old_make:1 make:0 key:01
translate_key: make=0, key=0001, input
KBD: translate(shiftstate=0000, key=0001, input)
KBD: translate(shiftstate=0000, key=0001, input)
KBD: translated key = 001b
KBD: writing to queue: scan=00000081
KBD: queuelevel=1
KBD: port60 still has data
KBD: port60 still has data
KBD: port60 still has data
KBD: port60 still has data
KBD: port60 still has data
KBD: port60 still has data
KBD: port60 still has data
8042: do_irq1(), VIF = 1
8042: read port 0x60 read=0x01
KBD: int9 running
INT15 0x4f CARRY=1 AX=8601
KBD: int9 running
KBD: compute_keynum(1, 0, dos) called
translate_key: make=1, key=0001, dos
KBD: translate(shiftstate=0000, key=0001, dos)
KBD: translate(shiftstate=0000, key=0001, dos)
KBD: translated key = 001b
HELPER: get_bios_key() returned 011b
KBD: int9 running
KBD: int9 running
KBD: read queue: raw=81
KBD: queuelevel=0
8042: scheduling IRQ1
8042: do_irq1(), VIF = 1
8042: read port 0x60 read=0x81
INT15 0x4f CARRY=1 AX=8681 
KBD: compute_keynum(81, 0, dos) called
translate_key: make=0, key=0001, dos
KBD: translate(shiftstate=0000, key=0001, dos)
KBD: translate(shiftstate=0000, key=0001, dos)
KBD: translated key = 001b
HELPER: get_bios_key() returned 0000

Thanks for looking into this...

-- Roger


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2002-06-20 22:52 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-06-19  3:01 ESCape issue with 1.1.3.2 Stas Sergeev
2002-06-19 10:23 ` Bart Oldeman
2002-06-19 19:35   ` Roger Ripley
2002-06-19 21:02     ` Bart Oldeman
2002-06-20 22:52       ` Roger Ripley
  -- strict thread matches above, loose matches on Subject: below --
2002-06-19 12:45 Stas Sergeev
2002-06-19 21:50 ` Bart Oldeman
2002-06-18 21:10 Roger Ripley
2002-06-18 23:40 ` Bart Oldeman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.