https://bugs.freedesktop.org/show_bug.cgi?id=79129
Julien Nabet <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |[email protected] Ever confirmed|0 |1 --- Comment #2 from Julien Nabet <[email protected]> --- On pc Debian x86-64 with master sources updated yesterday, I could reproduce the crash but couldn't get a full bt, here's what I got: Program received signal SIGABRT, Aborted. 0x00002aaaab2883a9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 ../nptl/sysdeps/unix/sysv/linux/raise.c: Aucun fichier ou dossier de ce type. (gdb) bt #0 0x00002aaaab2883a9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00002aaaab28b4c8 in __GI_abort () at abort.c:89 #2 0x00002aaaabcda745 in __gnu_debug::_Error_formatter::_M_error() const () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #3 0x00002aaadba145ea in __gnu_debug::_Safe_iterator<std::_Rb_tree_const_iterator<std::pair<rtl::OUString const, oox::drawingml::dgm::Point*> >, std::__debug::map<rtl::OUString, oox::drawingml::dgm::Point*, std::less<rtl::OUString>, std::allocator<std::pair<rtl::OUString const, oox::drawingml::dgm::Point*> > > >::operator-> (this=0x7ffffffebbc0) at /usr/include/c++/4.8/debug/safe_iterator.h:277 Python Exception <class 'RuntimeError'> maximum recursion depth exceeded: Fatal Python error: Cannot recover from stack overflow. Current thread 0x00002b9a8c32b600: File "/home/julien/compile-libreoffice/libreoffice/solenv/gdb/libreoffice/util/printing.py", line 104 in __call__ File "/home/julien/compile-libreoffice/libreoffice/solenv/gdb/boost/smart_ptr.py", line 40 in to_string repeat several times then, #4 0x00002aaadba10316 in oox::drawingml::LayoutNode::setupShape (this=0x90f5b40, rShape=Aborted (core dumped) /home/julien/compile-libreoffice/libreoffice/solenv/gbuild/Module.mk:161: recipe for target 'debugrun' failed make[1]: *** [debugrun] Error 134 Makefile:224: recipe for target 'build' failed make: *** [build] Error 2 (don't know if there's a link with: Starting program: /home/julien/compile-libreoffice/libreoffice/instdir/program/soffice.bin --writer warning: no loadable sections found in added symbol-file system-supplied DSO at 0x2aaaaaacb000 warning: Could not load shared library symbols for linux-vdso.so.1. Do you need "set solib-search-path" or "set sysroot"? [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Traceback (most recent call last): File "/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20-gdb.py", line 59, in <module> from libstdcxx.v6.printers import register_libstdcxx_printers File "/usr/lib/x86_64-linux-gnu/../../share/gcc-4.9/python/libstdcxx/v6/printers.py", line 392 raise ValueError, "Unsupported implementation for %s" % str(node.type) ^ SyntaxError: invalid syntax ) Anyway, I finally found the problem was here: 401 while( aVecIter != aVecEnd ) 402 { 403 DiagramData::PointNameMap::const_iterator aDataNode2=rDgm.getData()->getPointNameMap().find(aVecIter->first); 404 if( aVecIter->second == 0 ) The result of find isn't checked against end iterator. Adding this prevents from the crash: if (aDataNode2 != rDgm.getData()->getPointNameMap().end()) But several possibilities: 1) just test if != end iterator and keep on the loop 2) if = end iterator and break the loop 3) if = end iterator, throw an exception 4) other? -- You are receiving this mail because: You are the assignee for the bug.
_______________________________________________ Libreoffice-bugs mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs
