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

Reply via email to