Node tool crash due to modified path data?
Trying to node-edit the third path in the attached file immediately and reproducibly crashes inkscape (tested with Inkscape 0.47+devel r9092 on OS X 10.5.8).
- The path was created by combining two copies of a rectangle and applying (testing) the proposed extension 'Remove redundant edges' from recent launchpad report #521988 https://bugs.launchpad.net/inkscape/+bug/521988
- The path is rendered without error in Squiggle (Batik 1.7)
- The path can be node-edited in Inkscape 0.47 r22583 without crash.
I don't know what is wrong with this specific path but even if the path data is invalid wouldn't it be better if Inkscape displayed an error message and refused to render or edit it?
~suv
Process: inkscape-bin [8471] Path: /Volumes/blue/src/Inkscape/Inkscape-BZR/Inkscape.app/Contents/Resources/bin/inkscape-bin Identifier: inkscape-bin Version: ??? (???) Code Type: X86 (Native) Parent Process: Inkscape [8470]
Date/Time: 2010-02-16 04:06:56.755 +0100 OS Version: Mac OS X 10.5.8 (9L30) Report Version: 6 Anonymous UUID: 06BF1784-B9BF-4BFA-8A5D-2D66E467AB39
Exception Type: EXC_BAD_ACCESS (SIGBUS) Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000007 Crashed Thread: 0
Thread 0 Crashed: 0 inkscape-bin 0x005dbc0b Inkscape::UI::PathManipulator::_createControlPointsFromGeometry() + 123 1 inkscape-bin 0x005dcc3f Inkscape::UI::PathManipulator::PathManipulator(Inkscape::UI::MultiPathManipulator&, SPPath*, Geom::Matrix const&, unsigned int, Glib::ustring) + 1391 2 inkscape-bin 0x005c999e Inkscape::UI::MultiPathManipulator::setItems(std::set<Inkscape::UI::ShapeRecord, std::lessInkscape::UI::ShapeRecord, std::allocatorInkscape::UI::ShapeRecord > const&) + 990 3 inkscape-bin 0x005d7574 (anonymous namespace)::ink_node_tool_selection_changed(InkNodeTool*, Inkscape::Selection*) + 372 4 inkscape-bin 0x005d8d8c (anonymous namespace)::ink_node_tool_set(SPEventContext*, Inkscape::Preferences::Entry*) + 1404 5 inkscape-bin 0x00068ded sp_event_context_read(SPEventContext*, char const*) + 269 6 inkscape-bin 0x005d81eb (anonymous namespace)::ink_node_tool_setup(SPEventContext*) + 2219 7 inkscape-bin 0x00068b9f sp_event_context_new(unsigned long, SPDesktop*, char const*, unsigned int) + 271 8 inkscape-bin 0x0002fd19 SPDesktop::set_event_context(unsigned long, char const*) + 121 9 inkscape-bin 0x001d15c2 tools_switch(SPDesktop*, int) + 738 10 inkscape-bin 0x001e6454 Inkscape::ContextVerb::perform(SPAction*, void*, void*) + 1348 11 inkscape-bin 0x00315a62 sp_action_perform(SPAction*, void*) + 530 12 libgobject-2.0.0.dylib 0x01973bf9 g_closure_invoke + 313 13 libgobject-2.0.0.dylib 0x01984684 signal_emit_unlocked_R + 2788 14 libgobject-2.0.0.dylib 0x019859bd g_signal_emit_valist + 1853 15 libgobject-2.0.0.dylib 0x01985d29 g_signal_emit + 41 16 libgtk-x11-2.0.0.dylib 0x0135396a gtk_button_clicked + 138 17 libgtk-x11-2.0.0.dylib 0x014de708 gtk_toggle_button_released + 72 18 libgobject-2.0.0.dylib 0x01973bf9 g_closure_invoke + 313 19 libgobject-2.0.0.dylib 0x01983f35 signal_emit_unlocked_R + 917 20 libgobject-2.0.0.dylib 0x019859bd g_signal_emit_valist + 1853 21 libgobject-2.0.0.dylib 0x01985d29 g_signal_emit + 41 22 libgtk-x11-2.0.0.dylib 0x013538ca gtk_button_released + 138 23 libgtk-x11-2.0.0.dylib 0x01354bbb gtk_button_button_release + 43 24 libgtk-x11-2.0.0.dylib 0x0140dcab _gtk_marshal_BOOLEAN__BOXED + 107 25 libgobject-2.0.0.dylib 0x01973bf9 g_closure_invoke + 313 26 libgobject-2.0.0.dylib 0x01984495 signal_emit_unlocked_R + 2293 27 libgobject-2.0.0.dylib 0x01985437 g_signal_emit_valist + 439 28 libgobject-2.0.0.dylib 0x01985d29 g_signal_emit + 41 29 libgtk-x11-2.0.0.dylib 0x0152ea86 gtk_widget_event_internal + 662 30 libgtk-x11-2.0.0.dylib 0x0140bf79 gtk_propagate_event + 425 31 libgtk-x11-2.0.0.dylib 0x0140c42f gtk_main_do_event + 1151 32 libgdk-x11-2.0.0.dylib 0x01778945 gdk_event_dispatch + 85 33 libglib-2.0.0.dylib 0x01e6a91d g_main_context_dispatch + 573 34 libglib-2.0.0.dylib 0x01e6e39b g_main_context_iterate + 1179 35 libglib-2.0.0.dylib 0x01e6e677 g_main_loop_run + 439 36 libgtk-x11-2.0.0.dylib 0x0140b4c1 gtk_main + 177 37 libgtkmm-2.4.1.dylib 0x00ebf50b Gtk::Main::run() + 27 38 inkscape-bin 0x0000590a sp_main_gui(int, char const**) + 1146 39 inkscape-bin 0x001ed932 Inkscape::NSApplication::Application::run() + 178 40 inkscape-bin 0x00004362 main + 322 41 inkscape-bin 0x00003b96 start + 54
Thread 1: 0 libSystem.B.dylib 0x93dfd46e __semwait_signal + 10 1 libSystem.B.dylib 0x93e4d9f8 pthread_cond_timedwait$UNIX2003 + 72 2 libgthread-2.0.0.dylib 0x01e3c63b g_cond_timed_wait_posix_impl + 107 3 libglib-2.0.0.dylib 0x01e43a31 g_async_queue_pop_intern_unlocked + 225 4 libglib-2.0.0.dylib 0x01e43d01 g_async_queue_timed_pop + 65 5 libglib-2.0.0.dylib 0x01e95de0 g_thread_pool_thread_proxy + 272 6 libglib-2.0.0.dylib 0x01e93f28 g_thread_create_proxy + 152 7 libSystem.B.dylib 0x93e27155 _pthread_start + 321 8 libSystem.B.dylib 0x93e27012 thread_start + 34
Thread 0 crashed with X86 Thread State (32-bit): eax: 0x0905cd08 ebx: 0x005dbb9b ecx: 0x0905cd1c edx: 0x00000003 edi: 0x0905cd08 esi: 0x0905cd1c ebp: 0xbfffcf18 esp: 0xbfffcdd0 ss: 0x0000001f efl: 0x00210206 eip: 0x005dbc0b cs: 0x00000017 ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037 cr2: 0x00000007
Fixed in 9096. The last subpath in the problematic path has only a moveto, this should also be fixed in the extension.
Regards, Krzysztof
participants (2)
-
Krzysztof Kosiński
-
~suv