supertuxkart/stk-editor

Crash when attaching non-existant road to driveline

Closed this issue · 1 comments

After creating a driveline, I clicked on Create New Roadmesh, but instead of adding control points I directly clicked on "Attach to DriveLine", which made the editor crash with the following debug output:

Program received signal SIGSEGV, Segmentation fault.
0x000000000054f92f in TCR::getNormal (this=0x7fffeed3c450, t=-nan(0x400000))
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/src/spline/tcr.cpp:83
83          while (t > (it + 1)->t) it++;
(gdb) bt full
#0  0x000000000054f92f in TCR::getNormal (this=0x7fffeed3c450, t=-nan(0x400000))
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/src/spline/tcr.cpp:83
        tx = 0
        wm = 4,59163468e-41
        w1 = 0
        norm = {X = -nan(0x7fd5a0), Y = 4,59163468e-41, Z = 7,71941833e-39}
        it = {Current = 0x7fffb0bbc8a0}
        w0 = 2,03142763e-38
        w2 = 1,40129846e-45
#1  0x000000000056e94b in Road::attachToDriveLine (this=0x7fffb0bcbc70, dl=0x7fffb1511d60)
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/src/mesh/road.cpp:284
        i = 0
        dl_spline = 0x7fffb697fed0
        n = 1
        pos = {X = 0, Y = 0, Z = 0}
        t = -nan(0x400000)
#2  0x0000000000546b07 in Viewport::attachRoadToDriveLine (this=0x1196bf0)
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/src/viewport/viewport.cpp:424
        dl = 0x7fffb1511d60
#3  0x000000000053afed in Editor::buttonClicked (this=0xc89890, ID=404)
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/src/editor.cpp:146
        rp = 0x0
        ep = 0x0
#4  0x000000000053e5e8 in Editor::OnEvent (this=0xc89890, event=...)
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/src/editor.cpp:828
        rp = 0x1000
        id = 404
        should_quit = false
#5  0x00000000007735ea in OnEvent (event=..., this=0x7fffb9e5b5a0)
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/lib/irrlicht/include/IGUIElement.h:524
---Type <return> to continue, or q <return> to quit---
No locals.
#6  irr::gui::CGUIWindow::OnEvent (this=0x7fffb9e5b5a0, event=...)
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/lib/irrlicht/source/Irrlicht/CGUIWindow.cpp:217
No locals.
#7  0x00000000007735ea in OnEvent (event=..., this=0x7fffb5d4a170)
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/lib/irrlicht/include/IGUIElement.h:524
No locals.
#8  irr::gui::CGUIWindow::OnEvent (this=0x7fffb5d4a170, event=...)
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/lib/irrlicht/source/Irrlicht/CGUIWindow.cpp:217
No locals.
#9  0x000000000089392d in irr::gui::CGUIButton::OnEvent (this=0x7fffb5a04480, event=...)
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/lib/irrlicht/source/Irrlicht/CGUIButton.cpp:215
        newEvent = {EventType = irr::EET_GUI_EVENT, {GUIEvent = {Caller = 0x7fffb5a04480, Element = 0x0, 
              EventType = irr::gui::EGET_BUTTON_CLICKED}, MouseInput = {X = -1247787904, Y = 32767, Wheel = 0, Shift = false, 
              Control = false, ButtonStates = 5, Event = irr::EMIE_LMOUSE_PRESSED_DOWN}, KeyInput = {
              Char = -1247787904 L'\xb5a04480', Key = 32767, PressedDown = false, Shift = false, Control = false}, 
            JoystickEvent = {ButtonStates = 3047179392, Axis = {32767, 0, 0, 0, 0, 0}, POV = 5, Joystick = 0 '\000'}, LogEvent = {
              Text = 0x7fffb5a04480 "", Level = irr::ELL_DEBUG}, UserEvent = {UserData1 = -1247787904, UserData2 = 32767}}}
        wasPressed = true
#10 0x0000000000713879 in irr::gui::CGUIEnvironment::postEventFromUser (this=0xe7fe20, event=...)
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/lib/irrlicht/source/Irrlicht/CGUIEnvironment.cpp:570
No locals.
#11 0x000000000057feb9 in irr::CIrrDeviceStub::postEventFromUser (this=0xc985a0, event=...)
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/lib/irrlicht/source/Irrlicht/CIrrDeviceStub.cpp:224
        absorbed = <optimized out>
        inputReceiver = <optimized out>
#12 0x0000000000577191 in irr::CIrrDeviceLinux::run (this=0xc985a0)
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/lib/irrlicht/source/Irrlicht/CIrrDeviceLinux.cpp:999
        event = {type = 5, xany = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, window = 18874370}, xkey = {
            type = 5, serial = 318, send_event = 0, display = 0xc987e0, window = 18874370, root = 490, subwindow = 0, 
---Type <return> to continue, or q <return> to quit---
            time = 1519984, x = 1819, y = 511, x_root = 1819, y_root = 531, state = 256, keycode = 1, same_screen = 1}, xbutton = {
            type = 5, serial = 318, send_event = 0, display = 0xc987e0, window = 18874370, root = 490, subwindow = 0, 
            time = 1519984, x = 1819, y = 511, x_root = 1819, y_root = 531, state = 256, button = 1, same_screen = 1}, xmotion = {
            type = 5, serial = 318, send_event = 0, display = 0xc987e0, window = 18874370, root = 490, subwindow = 0, 
            time = 1519984, x = 1819, y = 511, x_root = 1819, y_root = 531, state = 256, is_hint = 1 '\001', same_screen = 1}, 
          xcrossing = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, window = 18874370, root = 490, subwindow = 0, 
            time = 1519984, x = 1819, y = 511, x_root = 1819, y_root = 531, mode = 256, detail = 1, same_screen = 1, focus = 0, 
            state = 0}, xfocus = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, window = 18874370, mode = 490, 
            detail = 0}, xexpose = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, window = 18874370, x = 490, y = 0, 
            width = 0, height = 0, count = 1519984}, xgraphicsexpose = {type = 5, serial = 318, send_event = 0, 
            display = 0xc987e0, drawable = 18874370, x = 490, y = 0, width = 0, height = 0, count = 1519984, major_code = 0, 
            minor_code = 1819}, xnoexpose = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, drawable = 18874370, 
            major_code = 490, minor_code = 0}, xvisibility = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, 
            window = 18874370, state = 490}, xcreatewindow = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, 
            parent = 18874370, window = 490, x = 0, y = 0, width = 1519984, height = 0, border_width = 1819, 
            override_redirect = 511}, xdestroywindow = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, 
            event = 18874370, window = 490}, xunmap = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, 
            event = 18874370, window = 490, from_configure = 0}, xmap = {type = 5, serial = 318, send_event = 0, 
            display = 0xc987e0, event = 18874370, window = 490, override_redirect = 0}, xmaprequest = {type = 5, serial = 318, 
            send_event = 0, display = 0xc987e0, parent = 18874370, window = 490}, xreparent = {type = 5, serial = 318, 
            send_event = 0, display = 0xc987e0, event = 18874370, window = 490, parent = 0, x = 1519984, y = 0, 
            override_redirect = 1819}, xconfigure = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, event = 18874370, 
            window = 490, x = 0, y = 0, width = 1519984, height = 0, border_width = 1819, above = 2280627635995, 
            override_redirect = 256}, xgravity = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, event = 18874370, 
            window = 490, x = 0, y = 0}, xresizerequest = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, 
            window = 18874370, width = 490, height = 0}, xconfigurerequest = {type = 5, serial = 318, send_event = 0, 
            display = 0xc987e0, parent = 18874370, window = 490, x = 0, y = 0, width = 1519984, height = 0, border_width = 1819, 
            above = 2280627635995, detail = 256, value_mask = 1}, xcirculate = {type = 5, serial = 318, send_event = 0, 
            display = 0xc987e0, event = 18874370, window = 490, place = 0}, xcirculaterequest = {type = 5, serial = 318, 
            send_event = 0, display = 0xc987e0, parent = 18874370, window = 490, place = 0}, xproperty = {type = 5, serial = 318, 
---Type <return> to continue, or q <return> to quit---
            send_event = 0, display = 0xc987e0, window = 18874370, atom = 490, time = 0, state = 1519984}, xselectionclear = {
            type = 5, serial = 318, send_event = 0, display = 0xc987e0, window = 18874370, selection = 490, time = 0}, 
          xselectionrequest = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, owner = 18874370, requestor = 490, 
            selection = 0, target = 1519984, property = 2194728290075, time = 2280627635995}, xselection = {type = 5, 
            serial = 318, send_event = 0, display = 0xc987e0, requestor = 18874370, selection = 490, target = 0, 
            property = 1519984, time = 2194728290075}, xcolormap = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, 
            window = 18874370, colormap = 490, c_new = 0, state = 0}, xclient = {type = 5, serial = 318, send_event = 0, 
            display = 0xc987e0, window = 18874370, message_type = 490, format = 0, data = {
              b = "p1\027\000\000\000\000\000\033\a\000\000\377\001\000\000\033\a\000", s = {12656, 23, 0, 0, 1819, 0, 511, 0, 
                1819, 0}, l = {1519984, 2194728290075, 2280627635995, 4294967552, 1}}}, xmapping = {type = 5, serial = 318, 
            send_event = 0, display = 0xc987e0, window = 18874370, request = 490, first_keycode = 0, count = 0}, xerror = {
            type = 5, display = 0x13e, resourceid = 0, serial = 13207520, error_code = 2 '\002', request_code = 0 '\000', 
            minor_code = 32 ' '}, xkeymap = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, window = 18874370, 
            key_vector = "\352\001", '\000' <repeats 14 times>, "p1\027\000\000\000\000\000\033\a\000\000\377\001\000"}, 
          xgeneric = {type = 5, serial = 318, send_event = 0, display = 0xc987e0, extension = 18874370, evtype = 0}, xcookie = {
            type = 5, serial = 318, send_event = 0, display = 0xc987e0, extension = 18874370, evtype = 0, cookie = 490, 
            data = 0x0}, pad = {140733193388037, 318, 0, 13207520, 18874370, 490, 0, 1519984, 2194728290075, 2280627635995, 
            4294967552, 1, 0 <repeats 12 times>}}
        irrevent = {EventType = irr::EET_MOUSE_INPUT_EVENT, {GUIEvent = {Caller = 0x1ff0000071b, Element = 0x0, 
              EventType = irr::gui::EGET_ELEMENT_FOCUS_LOST}, MouseInput = {X = 1819, Y = 511, Wheel = 0, Shift = false, 
              Control = false, ButtonStates = 0, Event = irr::EMIE_LMOUSE_LEFT_UP}, KeyInput = {Char = 1819 L'ܛ', Key = 511, 
              PressedDown = false, Shift = false, Control = false}, JoystickEvent = {ButtonStates = 1819, Axis = {511, 0, 0, 0, 0, 
                0}, POV = 0, Joystick = 0 '\000'}, LogEvent = {
              Text = 0x1ff0000071b <error: Cannot access memory at address 0x1ff0000071b>, Level = irr::ELL_DEBUG}, UserEvent = {
              UserData1 = 1819, UserData2 = 511}}}
#13 0x000000000053df37 in Editor::run (this=0xc89890)
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/src/editor.cpp:684
        current_time = 504851
        last_time = 504851
#14 0x000000000053aa39 in main (argc=1, argv=0x7fffffffdbf8)
---Type <return> to continue, or q <return> to quit---
    at /home/magne/SuperTuxKart/supertuxkart-git/mhp-stk-editor/src/main.cpp:11
        editor = 0xc89890
mcsab commented

Fixed in e5557cf.