CADSTAR PCB import crash (multi-layer component copper)

Description

Based on issue #16485 (closed) I tracked down one crash under Kicad 7.0.10

I can confirm a crash while importing CI883A.cpa from https://www.eevblog.com/forum/eda/cadstar-conversion-from-pcb-to-cpa/

grafik

Steps to reproduce

  1. open pcbnew in standalone mode
  2. try to import the above mentioned CI883A.cpa file
  3. accept warning
  4. do automatch of layers
  5. observe this crash
Click to expand gdb log
Unhandled unknown exception; terminating the application.

Thread 1 "pcbnew" received signal SIGABRT, Aborted.
__pthread_kill_implementation (no_tid=0, signo=6, threadid=140737279741120) at ./nptl/pthread_kill.c:44
44	./nptl/pthread_kill.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140737279741120) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=140737279741120) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=140737279741120, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007ffff5642476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007ffff56287f3 in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007ffff7276759 in  () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#6  0x00007ffff728a0a2 in  () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#7  0x00007ffff728a110 in  () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#8  0x00007ffff7978b42 in wxWindow::GTKSendPaintEvents(_cairo*) () at /lib/x86_64-linux-gnu/libwx_gtk3u_core-3.2.so.0
#9  0x00007ffff796a753 in  () at /lib/x86_64-linux-gnu/libwx_gtk3u_core-3.2.so.0
#10 0x00007ffff69e5b77 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#11 0x00007ffff6990033 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#12 0x00007ffff7e83d2f in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x00007ffff7e9fc36 in  () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x00007ffff7ea1026 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x00007ffff7ea1863 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#16 0x00007ffff699fd82 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#17 0x00007ffff6780825 in gtk_container_propagate_draw () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#18 0x00007ffff678092d in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#19 0x00007ffff68d7872 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#20 0x00007ffff67782e1 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#21 0x00007ffff678c852 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#22 0x00007ffff68cfb65 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#23 0x00007ffff699fb64 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#24 0x00007ffff6780825 in gtk_container_propagate_draw () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#25 0x00007ffff67f2921 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#26 0x00007ffff69e5b77 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#27 0x00007ffff6990033 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#28 0x00007ffff7e83d2f in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#29 0x00007ffff7e9f624 in  () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#30 0x00007ffff7ea1026 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#31 0x00007ffff7ea1863 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#32 0x00007ffff699fd82 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#33 0x00007ffff6780825 in gtk_container_propagate_draw () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#34 0x00007ffff678092d in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#35 0x00007ffff6722571 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#36 0x00007ffff67782e1 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#37 0x00007ffff678c852 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#38 0x00007ffff6722e15 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#39 0x00007ffff699fb64 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#40 0x00007ffff6780825 in gtk_container_propagate_draw () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#41 0x00007ffff678092d in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#42 0x00007ffff69c060e in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#43 0x00007ffff699fb64 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#44 0x00007ffff69abdb1 in  () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#45 0x00007ffff685254b in gtk_main_do_event () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#46 0x00007ffff5d32743 in  () at /lib/x86_64-linux-gnu/libgdk-3.so.0
#47 0x00007ffff5d45151 in  () at /lib/x86_64-linux-gnu/libgdk-3.so.0
#48 0x00007ffff5d4a221 in  () at /lib/x86_64-linux-gnu/libgdk-3.so.0
#49 0x00007ffff5d4a418 in  () at /lib/x86_64-linux-gnu/libgdk-3.so.0
#50 0x00007ffff7ea1700 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#51 0x00007ffff7ea1863 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#52 0x00007ffff5d3fc6f in  () at /lib/x86_64-linux-gnu/libgdk-3.so.0
#53 0x00007ffff5d2c2ad in  () at /lib/x86_64-linux-gnu/libgdk-3.so.0
#54 0x00007ffff651c2c8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#55 0x00007ffff651bc44 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#56 0x00007ffff6571258 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#57 0x00007ffff651b2b3 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#58 0x00007ffff6848cfd in gtk_main () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#59 0x00007ffff7946895 in wxGUIEventLoop::DoRun() () at /lib/x86_64-linux-gnu/libwx_gtk3u_core-3.2.so.0
#60 0x00007ffff72bb591 in wxEventLoopBase::Run() () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#61 0x00007ffff79bc279 in wxDialog::ShowModal() () at /lib/x86_64-linux-gnu/libwx_gtk3u_core-3.2.so.0
#62 0x00007ffff7b78543 in wxLogGui::Flush() () at /lib/x86_64-linux-gnu/libwx_gtk3u_core-3.2.so.0
#63 0x00007ffff72fa9f6 in wxLog::SetActiveTarget(wxLog*) () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#64 0x00007ffff72f328c in wxEntryCleanup() () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#65 0x00007ffff72f6bbe in wxEntry(int&, wchar_t**) () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#66 0x00005555555a046c in main(int, char**) (argc=<optimized out>, argv=<optimized out>)
    at ./kicad/common/single_top.cpp:267

KiCad Version

Application: KiCad x86_64 on x86_64

Version: 7.0.10-unknown-202312301549~838674c4a7~ubuntu22.04.1, release build

Libraries:
	wxWidgets 3.2.1
	FreeType 2.11.1
	HarfBuzz 6.0.0
	FontConfig 2.13.1
	libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.16

Platform: Linux Mint 21.2, 64 bit, Little endian, wxGTK, cinnamon, x11

Build Info:
	Date: Dec 30 2023 15:49:09
	wxWidgets: 3.2.1 (wchar_t,wx containers) GTK+ 3.24
	Boost: 1.74.0
	OCC: 7.5.2
	Curl: 7.88.1
	ngspice: 38
	Compiler: GCC 11.4.0 with C++ ABI 1016

Build settings:
	KICAD_SPICE=ON