Crash when attempting to select a 3D box with a broken perspective reference
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Inkscape |
Fix Released
|
Medium
|
Unassigned |
Bug Description
I have encountered crash while fitting page to selection.
To reproduce crash open attached svg file, select all objects, then open document properties dialog and click "fit page to selection".
This bug is present in 0.46 version as well as in current cvs version.
Inkscape runs on x86-64 debian lenny/sid machine with 2.6.25.14 kernel with nvidia propietary drivers (version 173.14.12)
This is a GDB output:
-------
[Thread debugging using libthread_db enabled]
[New Thread 0x7fc0210a8780 (LWP 15291)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fc0210a8780 (LWP 15291)]
persp3d_
683 __normal_
(gdb) bt
#0 persp3d_
#1 0x00000000004fcc92 in box3d_set_transform (item=0x36042e0, xform=@0x36043c0) at box3d.cpp:338
#2 0x0000000000498233 in sp_item_
transform=
#3 0x00000000004918aa in sp_item_move_rel (item=0x36042e0, tr=@0x7fff291f8170) at sp-item-
#4 0x000000000048f3fd in SPGroup:
at sp-item-
#5 0x00000000004543eb in SPDocument:
#6 0x0000000000474dc8 in fit_canvas_
#7 0x0000000000474eb3 in fit_canvas_
at selection-
#8 0x00000000007752eb in sp_action_perform (action=0x1483cb0, data=0x0) at helper/
#9 0x00007fc01fea6c92 in Glib::SignalPro
#10 0x00007fc01df3eebd in g_closure_invoke () from /usr/lib/
#11 0x00007fc01df5229c in ?? () from /usr/lib/
#12 0x00007fc01df53116 in g_signal_
#13 0x00007fc01df53623 in g_signal_emit () from /usr/lib/
#14 0x00007fc01ef96d9d in ?? () from /usr/lib/
#15 0x00007fc01df3eebd in g_closure_invoke () from /usr/lib/
#16 0x00007fc01df51538 in ?? () from /usr/lib/
#17 0x00007fc01df53116 in g_signal_
---Type <return> to continue, or q <return> to quit---
#18 0x00007fc01df53623 in g_signal_emit () from /usr/lib/
#19 0x00007fc01ef95f3d in ?? () from /usr/lib/
#20 0x00007fc01f064688 in ?? () from /usr/lib/
#21 0x00007fc01df3eebd in g_closure_invoke () from /usr/lib/
#22 0x00007fc01df518fc in ?? () from /usr/lib/
#23 0x00007fc01df52f99 in g_signal_
#24 0x00007fc01df53623 in g_signal_emit () from /usr/lib/
#25 0x00007fc01f17919e in ?? () from /usr/lib/
#26 0x00007fc01f05d203 in gtk_propagate_event () from /usr/lib/
#27 0x00007fc01f05e24b in gtk_main_do_event () from /usr/lib/
#28 0x00007fc01ecbff8c in ?? () from /usr/lib/
#29 0x00007fc01d495892 in g_main_
#30 0x00007fc01d49901d in ?? () from /usr/lib/
#31 0x00007fc01d49954d in g_main_loop_run () from /usr/lib/
#32 0x00007fc01f05e667 in gtk_main () from /usr/lib/
#33 0x00000000004503b1 in sp_main_gui (argc=1, argv=0x7fff291f
#34 0x0000000000450835 in main (argc=1, argv=0x7fff291f
Changed in inkscape: | |
milestone: | none → 0.48 |
status: | Fix Released → Fix Committed |
Changed in inkscape: | |
milestone: | 0.48 → none |
Confirmed in SVN revision 19629.
The crash seems to be caused by a 3D box in which the paths all lack 'd' attributes. If this box (with id="g5142") is manually removed from the SVG file before opening in Inkscape, then the crash doesn't occur.
A crash can also be triggered like this:
1) Open the file.
2) Open the Find dialog (Ctrl+F).
3) Type g5142 in the ID field.
4) Click the Find button.
Both crashes produce the following message on stderr:
** (inkscape.exe:660): CRITICAL **: void box3d_add_ to_selection( SPBox3D* ): assertion `persp' failed