Hi Marco,
Marco Sansottera <marco.sansottera@gmail.com> (21/08/2012):
> Package: xterm
> Version: 278-1
> Severity: normal
>
> Dear Maintainer,
> xterm crashes when started in Tektronix mode (-t option)
> after pressing any key (Segmentation fault).
thanks for the report, confirmed here. This trivial patch avoids the
crash, but rendering is always bad:
| --- a/input.c
| +++ b/input.c
| @@ -832,7 +832,7 @@ Input(XtermWidget xw,
| {
| #if OPT_I18N_SUPPORT && OPT_INPUT_METHOD
| TInput *input = lookupTInput(xw, (Widget) xw);
| - if (input->xic) {
| + if (input && input->xic) {
| Status status_return;
| #if OPT_WIDE_CHARS
| if (screen->utf8_mode) {
Crash due to input's being NULL, backtrace is:
| Program received signal SIGSEGV, Segmentation fault.
| 0x000000000042e856 in Input (xw=0x6c0130, event=0x7fffffffdc90, eightbit=0) at ../input.c:835
| 835 if (input->xic) {
| (gdb) bt
| #0 0x000000000042e856 in Input (xw=0x6c0130, event=0x7fffffffdc90, eightbit=0) at ../input.c:835
| #1 0x000000000043b60c in HandleKeyPressed (w=0x6c6610, event=0x7fffffffdc90, params=0x0, nparams=0x7ffff6a161d0) at ../misc.c:702
| #2 0x00007ffff67fa4ed in HandleActions (w=<optimized out>, event=0x7fffffffdc90, accelWidget=<optimized out>, procs=0x6dd698, actions=0x7ffff6a161c0, stateTree=<optimized out>) at ../../src/TMstate.c:645
| #3 0x00007ffff67fa90a in HandleSimpleState (w=0x6c6610, tmRecPtr=0x6c6658, curEventPtr=0x7fffffffd830) at ../../src/TMstate.c:884
| #4 0x00007ffff67fb647 in _XtTranslateEvent (w=0x6c6610, event=<optimized out>) at ../../src/TMstate.c:1101
| #5 0x00007ffff67d3553 in XtDispatchEventToWidget (widget=0x6c6610, event=0x7fffffffdc90) at ../../src/Event.c:906
| #6 0x00007ffff67d3c96 in _XtDefaultDispatcher (event=0x7fffffffdc90) at ../../src/Event.c:1367
| #7 0x00007ffff67d3d54 in XtDispatchEvent (event=0x7fffffffdc90) at ../../src/Event.c:1423
| #8 0x000000000043b490 in xevents () at ../misc.c:641
| #9 0x0000000000459768 in Tinput (tw=0x6c6610) at ../Tekproc.c:857
| #10 0x0000000000458778 in Tekparse (tw=0x6c6610) at ../Tekproc.c:422
| #11 0x000000000045aad6 in TekRun () at ../Tekproc.c:1313
| #12 0x000000000043320a in main (argc=0, argv=0x7fffffffe340) at ../main.c:2576
The full backtrace is attached.
Mraw,
KiBi.
(gdb) bt full
#0 0x000000000042e856 in Input (xw=0x6c0130, event=0x7fffffffdc90, eightbit=0) at ../input.c:835
input = 0x0
string = 0x7fffffffd590 ""
keyboard = 0x6c0258
screen = 0x6c02a8
j = -154957904
key = 0
reply = {a_type = 60 '<', a_pintro = 169 '\251', a_inters = 34 '"', a_final = 71 'G', a_nparam = 0, a_param = {0, 27650, -2082, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5368, -2050,
32767, 0, -11056}}
dec_code = 32767
modify_parm = 0
keypad_mode = 0
evt_state = 0
mod_state = 1
kd = {keysym = 0, is_fkey = 0, nbytes = 0,
strbuf = "\000\000\000\000\000\000\000\000P\030\376\367\377\177\000\000@\325\377\377\377\177\000\000X\325\377\377\377\177\000\000\000\351m\000\001\000\000\000\a\000\000\000\370", '\000' <repeats 11 times>, "\016+\304\366\377\177\000\000\060\266\303\366\377\177\000\000\370\024\376\367\377\177\000\000`\351m\000\000\000\000\000\377\377\377\377\000\000\000\000`\351m\000\000\000\000\000\001\000\000\000\000\000\000\000\210p3", '\000' <repeats 13 times>"\350, \326\377\377\377\177\000\000\070\000\000\000\000\000\000\000\000\020\303\366\377\177\000\000\362\251\336\367\377\177\000\000\260\207\303\366\377\177\000\000\370\024\376\367\377\177\000\000\370\016\000\000\000\000\000\000\377\377\377\377\000\000\000\000\240\360m\000\000\000\000\000\001\000\000\000\000\000\000\000\260{3", '\000' <repeats 13 times>"\350, \326\377\377\377\177\000\000\070\000\000\000\000\000\000\000\000\020\303\366\377\177\000\000\362\251\336\367\377\177\000\000\001", '\000' <repeats 15 times>, "p\nj\000\000\000\000\000\260\207\303\366\377\177\000\000`\351m", '\000' <repeats 13 times>...}
#1 0x000000000043b60c in HandleKeyPressed (w=0x6c6610, event=0x7fffffffdc90, params=0x0, nparams=0x7ffff6a161d0) at ../misc.c:702
No locals.
#2 0x00007ffff67fa4ed in HandleActions (w=<optimized out>, event=0x7fffffffdc90, accelWidget=<optimized out>, procs=0x6dd698, actions=0x7ffff6a161c0, stateTree=<optimized out>) at ../../src/TMstate.c:645
actionHookList = 0x0
bindWidget = <optimized out>
#3 0x00007ffff67fa90a in HandleSimpleState (w=0x6c6610, tmRecPtr=0x6c6658, curEventPtr=0x7fffffffd830) at ../../src/TMstate.c:884
bindData = <optimized out>
procs = <optimized out>
accelWidget = <optimized out>
xlations = 0x6c65c0
contextPtr = 0x6c6668
i = <optimized out>
actions = 0x7ffff6a161c0
matchExact = 1 '\001'
match = 1 '\001'
complexMatchState = 0x0
currIndex = -2
typeIndex = 12
modIndex = 6
matchTreeIndex = 0
#4 0x00007ffff67fb647 in _XtTranslateEvent (w=0x6c6610, event=<optimized out>) at ../../src/TMstate.c:1101
tmRecPtr = 0x6c6658
curEvent = {xev = 0x7fffffffdc90, event = {modifiers = 0, modifierMask = 0, lateModifiers = 0x0, eventType = 2, eventCode = 56, eventCodeMask = 0, matchEvent = 0, standard = 0 '\000'}}
current_state = <optimized out>
#5 0x00007ffff67d3553 in XtDispatchEventToWidget (widget=0x6c6610, event=0x7fffffffdc90) at ../../src/Event.c:906
p = <optimized out>
was_dispatched = 0 '\000'
call_tm = 1 '\001'
cont_to_disp = 1 '\001'
mask = <optimized out>
app = <optimized out>
#6 0x00007ffff67d3c96 in _XtDefaultDispatcher (event=0x7fffffffdc90) at ../../src/Event.c:1367
mask = 1
dspWidget = 0x6c6610
was_filtered = <optimized out>
widget = 0x6c55d0
grabType = <optimized out>
pdi = 0x6a0e60
grabList = 0x0
was_dispatched = 0 '\000'
app = 0x0
#7 0x00007ffff67d3d54 in XtDispatchEvent (event=0x7fffffffdc90) at ../../src/Event.c:1423
was_dispatched = <optimized out>
safe = <optimized out>
dispatch_level = 1
starting_count = 0
pd = <optimized out>
time = <optimized out>
dispatch = <optimized out>
app = 0x68f170
#8 0x000000000043b490 in xevents () at ../misc.c:641
xw = 0x6c0130
screen = 0x6c02a8
event = {type = 2, xany = {type = 2, serial = 118, send_event = 0, display = 0x690440, window = 58720275}, xkey = {type = 2, serial = 118, send_event = 0, display = 0x690440, window = 58720275, root = 174,
subwindow = 0, time = 173825812, x = 516, y = 677, x_root = 517, y_root = 714, state = 0, keycode = 56, same_screen = 1}, xbutton = {type = 2, serial = 118, send_event = 0, display = 0x690440,
window = 58720275, root = 174, subwindow = 0, time = 173825812, x = 516, y = 677, x_root = 517, y_root = 714, state = 0, button = 56, same_screen = 1}, xmotion = {type = 2, serial = 118, send_event = 0,
display = 0x690440, window = 58720275, root = 174, subwindow = 0, time = 173825812, x = 516, y = 677, x_root = 517, y_root = 714, state = 0, is_hint = 56 '8', same_screen = 1}, xcrossing = {type = 2,
serial = 118, send_event = 0, display = 0x690440, window = 58720275, root = 174, subwindow = 0, time = 173825812, x = 516, y = 677, x_root = 517, y_root = 714, mode = 0, detail = 56, same_screen = 1, focus = 0,
state = 0}, xfocus = {type = 2, serial = 118, send_event = 0, display = 0x690440, window = 58720275, mode = 174, detail = 0}, xexpose = {type = 2, serial = 118, send_event = 0, display = 0x690440,
window = 58720275, x = 174, y = 0, width = 0, height = 0, count = 173825812}, xgraphicsexpose = {type = 2, serial = 118, send_event = 0, display = 0x690440, drawable = 58720275, x = 174, y = 0, width = 0,
height = 0, count = 173825812, major_code = 0, minor_code = 516}, xnoexpose = {type = 2, serial = 118, send_event = 0, display = 0x690440, drawable = 58720275, major_code = 174, minor_code = 0}, xvisibility = {
type = 2, serial = 118, send_event = 0, display = 0x690440, window = 58720275, state = 174}, xcreatewindow = {type = 2, serial = 118, send_event = 0, display = 0x690440, parent = 58720275, window = 174, x = 0,
y = 0, width = 173825812, height = 0, border_width = 516, override_redirect = 677}, xdestroywindow = {type = 2, serial = 118, send_event = 0, display = 0x690440, event = 58720275, window = 174}, xunmap = {
type = 2, serial = 118, send_event = 0, display = 0x690440, event = 58720275, window = 174, from_configure = 0}, xmap = {type = 2, serial = 118, send_event = 0, display = 0x690440, event = 58720275,
window = 174, override_redirect = 0}, xmaprequest = {type = 2, serial = 118, send_event = 0, display = 0x690440, parent = 58720275, window = 174}, xreparent = {type = 2, serial = 118, send_event = 0,
display = 0x690440, event = 58720275, window = 174, parent = 0, x = 173825812, y = 0, override_redirect = 516}, xconfigure = {type = 2, serial = 118, send_event = 0, display = 0x690440, event = 58720275,
window = 174, x = 0, y = 0, width = 173825812, height = 0, border_width = 516, above = 3066606649861, override_redirect = 0}, xgravity = {type = 2, serial = 118, send_event = 0, display = 0x690440,
event = 58720275, window = 174, x = 0, y = 0}, xresizerequest = {type = 2, serial = 118, send_event = 0, display = 0x690440, window = 58720275, width = 174, height = 0}, xconfigurerequest = {type = 2,
serial = 118, send_event = 0, display = 0x690440, parent = 58720275, window = 174, x = 0, y = 0, width = 173825812, height = 0, border_width = 516, above = 3066606649861, detail = 0, value_mask = 1},
xcirculate = {type = 2, serial = 118, send_event = 0, display = 0x690440, event = 58720275, window = 174, place = 0}, xcirculaterequest = {type = 2, serial = 118, send_event = 0, display = 0x690440,
parent = 58720275, window = 174, place = 0}, xproperty = {type = 2, serial = 118, send_event = 0, display = 0x690440, window = 58720275, atom = 174, time = 0, state = 173825812}, xselectionclear = {type = 2,
serial = 118, send_event = 0, display = 0x690440, window = 58720275, selection = 174, time = 0}, xselectionrequest = {type = 2, serial = 118, send_event = 0, display = 0x690440, owner = 58720275,
requestor = 174, selection = 0, target = 173825812, property = 2907692859908, time = 3066606649861}, xselection = {type = 2, serial = 118, send_event = 0, display = 0x690440, requestor = 58720275,
selection = 174, target = 0, property = 173825812, time = 2907692859908}, xcolormap = {type = 2, serial = 118, send_event = 0, display = 0x690440, window = 58720275, colormap = 174, new = 0, state = 0},
xclient = {type = 2, serial = 118, send_event = 0, display = 0x690440, window = 58720275, message_type = 174, format = 0, data = {b = "\024_\\\n\000\000\000\000\004\002\000\000\245\002\000\000\005\002\000", s = {
24340, 2652, 0, 0, 516, 0, 677, 0, 517, 0}, l = {173825812, 2907692859908, 3066606649861, 240518168576, 1}}}, xmapping = {type = 2, serial = 118, send_event = 0, display = 0x690440, window = 58720275,
request = 174, first_keycode = 0, count = 0}, xerror = {type = 2, display = 0x76, resourceid = 0, serial = 6882368, error_code = 19 '\023', request_code = 0 '\000', minor_code = 128 '\200'}, xkeymap = {
type = 2, serial = 118, send_event = 0, display = 0x690440, window = 58720275, key_vector = "\256", '\000' <repeats 15 times>, "\024_\\\n\000\000\000\000\004\002\000\000\245\002\000"}, xgeneric = {type = 2,
serial = 118, send_event = 0, display = 0x690440, extension = 58720275, evtype = 0}, xcookie = {type = 2, serial = 118, send_event = 0, display = 0x690440, extension = 58720275, evtype = 0, cookie = 174,
data = 0x0}, pad = {140733193388034, 118, 0, 6882368, 58720275, 174, 0, 173825812, 2907692859908, 3066606649861, 240518168576, 1, 0 <repeats 12 times>}}
input_mask = 1
#9 0x0000000000459768 in Tinput (tw=0x6c6610) at ../Tekproc.c:857
update = 0
xw = 0x6c0130
tekscr = 0x6c6720
screen = 0x6c02a8
tek = 0xa8428197
#10 0x0000000000458778 in Tekparse (tw=0x6c6610) at ../Tekproc.c:422
xw = 0x6c0130
screen = 0x6c02a8
tekscr = 0x6c6720
x = 4209395
y = 0
c = 0
ch = 4201240
nextstate = 32767
#11 0x000000000045aad6 in TekRun () at ../Tekproc.c:1313
xw = 0x6c0130
#12 0x000000000043320a in main (argc=0, argv=0x7fffffffe340) at ../main.c:2576
tblFullscreen = {{name = 0x468010 "Always", code = 2}, {name = 0x468017 "Never", code = 3}}
form_top = 0x6b5ff0
menu_top = 0x6b5ff0
menu_high = 0
screen = 0x6c02a8
mode = 34818
my_class = 0x467b79 "XTerm"
winToEmbedInto = 0
(gdb)
Attachment:
signature.asc
Description: Digital signature