eeschema segfaults when drawing a wire that ends on another pin/wire (SCH_DRAWING_TOOL::doDrawSegments)

Bug #1826086 reported by Paul Hansel on 2019-04-24
26
This bug affects 4 people
Affects Status Importance Assigned to Milestone
KiCad
Fix Committed
Critical
Jeff Young

Bug Description

Place any component (including a wire) on the canvas. Make a wire from any pin/wire on that component to any pin on any component on the schematic. Clicking to end the tool on that second pin will cause eeschema to segfault:

Thread 1 "kicad" received signal SIGSEGV, Segmentation fault.
0x00007fffe5540c6c in SCH_DRAWING_TOOL::doDrawSegments(int, SCH_LINE*) ()
   from /usr/local/bin/_eeschema.kiface

Application: kicad
Version: (5.1.0-344-gd281f05), release build
Libraries:
    wxWidgets 3.0.2
    libcurl/7.47.0 OpenSSL/1.0.2g zlib/1.2.8 libidn/1.32 librtmp/2.3
Platform: Linux 4.15.0-47-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
    Boost: 1.58.0
    OpenCASCADE Community Edition: 6.8.0
    Curl: 7.47.0
    Compiler: GCC 5.4.0 with C++ ABI 1009

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Download full text (3.2 KiB)

SCH_LINE::SetEndPoint(wxPoint const&) sch_line.h:82
SCH_DRAWING_TOOL::doDrawSegments(int, SCH_LINE*) sch_drawing_tool.cpp:982
SCH_DRAWING_TOOL::DrawWire(TOOL_EVENT const&) sch_drawing_tool.cpp:653
decltype(*(std::__1::forward<SCH_DRAWING_TOOL*&>(fp0)).*fp(std::__1::forward<TOOL_EVENT const&>(fp1))) std::__1::__invoke<int (SCH_DRAWING_TOOL::*&)(TOOL_EVENT const&), SCH_DRAWING_TOOL*&, TOOL_EVENT const&, void>(int (SCH_DRAWING_TOOL::*&)(TOOL_EVENT const&), SCH_DRAWING_TOOL*&, TOOL_EVENT const&) type_traits:4280
std::__1::__bind_return<int (SCH_DRAWING_TOOL::*)(TOOL_EVENT const&), std::__1::tuple<SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> >, std::__1::tuple<TOOL_EVENT const&>, __is_valid_bind_return<int (SCH_DRAWING_TOOL::*)(TOOL_EVENT const&), std::__1::tuple<SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> >, std::__1::tuple<TOOL_EVENT const&> >::value>::type std::__1::__apply_functor<int (SCH_DRAWING_TOOL::*)(TOOL_EVENT const&), std::__1::tuple<SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> >, 0ul, 1ul, std::__1::tuple<TOOL_EVENT const&> >(int (SCH_DRAWING_TOOL::*&)(TOOL_EVENT const&), std::__1::tuple<SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> >&, std::__1::__tuple_indices<0ul, 1ul>, std::__1::tuple<TOOL_EVENT const&>&&) functional:2216
std::__1::__bind_return<int (SCH_DRAWING_TOOL::*)(TOOL_EVENT const&), std::__1::tuple<SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> >, std::__1::tuple<TOOL_EVENT const&>, __is_valid_bind_return<int (SCH_DRAWING_TOOL::*)(TOOL_EVENT const&), std::__1::tuple<SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> >, std::__1::tuple<TOOL_EVENT const&> >::value>::type std::__1::__bind<int (SCH_DRAWING_TOOL::*&)(TOOL_EVENT const&), SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> const&>::operator()<TOOL_EVENT const&>(TOOL_EVENT const&) functional:2249
decltype(std::__1::forward<std::__1::__bind<int (SCH_DRAWING_TOOL::*&)(TOOL_EVENT const&), SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> const&>&>(fp)(std::__1::forward<TOOL_EVENT const&>(fp0))) std::__1::__invoke<std::__1::__bind<int (SCH_DRAWING_TOOL::*&)(TOOL_EVENT const&), SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> const&>&, TOOL_EVENT const&>(std::__1::__bind<int (SCH_DRAWING_TOOL::*&)(TOOL_EVENT const&), SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> const&>&, TOOL_EVENT const&) type_traits:4339
int std::__1::__invoke_void_return_wrapper<int>::__call<std::__1::__bind<int (SCH_DRAWING_TOOL::*&)(TOOL_EVENT const&), SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> const&>&, TOOL_EVENT const&>(std::__1::__bind<int (SCH_DRAWING_TOOL::*&)(TOOL_EVENT const&), SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> const&>&, TOOL_EVENT const&) __functional_base:318
std::__1::__function::__func<std::__1::__bind<int (SCH_DRAWING_TOOL::*&)(TOOL_EVENT const&), SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> const&>, std::__1::allocator<std::__1::__bind<int (SCH_DRAWING_TOOL::*&)(TOOL_EVENT const&), SCH_DRAWING_TOOL*, std::__1::placeholders::__ph<1> const&> >, int (TOOL_EVENT const&)>::operator()(TOOL_EVENT const&) functional:1562
std::__1::function<int (TOOL_EVENT const&)>::operator()(TOOL_EVENT const&) const functional:1913
...

Read more...

Changed in kicad:
importance: Undecided → Critical
milestone: none → 6.0.0-rc1
status: New → Triaged
Jeff Young (jeyjey) wrote :

Fixed in 5e556f0c6a5682bcb4e519d0a8b8a7b3152766b7.

Changed in kicad:
status: Triaged → Fix Committed
assignee: nobody → Jeff Young (jeyjey)
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers