https://bugs.freedesktop.org/show_bug.cgi?id=50372
Bug #: 50372
Summary: BASE SIGABRT: dereference a past-the-end iterator
Classification: Unclassified
Product: LibreOffice
Version: LibO Master
Platform: Other
OS/Version: Linux (All)
Status: UNCONFIRMED
Severity: normal
Priority: medium
Component: Database
AssignedTo: [email protected]
ReportedBy: [email protected]
Created attachment 62126
--> https://bugs.freedesktop.org/attachment.cgi?id=62126
error message and backtrace
At the stage described in bug 47520 comment 3
<https://bugs.freedesktop.org/show_bug.cgi?id=47520#c3> step 7, the
program issues message "attempt to dereference a past-the-end
iterator" and aborts. The attached typescript shows the failure and
gdb backtrace.
I have built from master commit d015384, pulled 2012-05-20, configured
as ...
--disable-mozilla
--enable-symbols
--enable-dbgutil
--enable-crashdump
--disable-build-mozilla
--without-system-postgresql
--enable-debug
and running on ubuntu-natty (11.04).
Working backward in the code and gdb, I observe ...
(*) The dereference happens in OKeySet::refreshRow(), KeySet.cxx line
1338. At this point, m_aKeyIter equals m_aKeyMap.end(). The
error message is true.
(*) m_aKeyIter became equal to m_aKeyMap.end() when
OKeySet::refreshRow(), KeySet.cxx line 1348 increamented the
iterator before the recursive call to OKeySet::refreshRow().
After line 1349 erases the previously addressed element of
m_aKeyMap, m_aKeyMap.size() is 2.
A couple of simple-minded hacks to the code ( early return from
recursive call to OKeySet::refreshRow(); decrementing instead of
incrementing the pointer before the recursive call ) merely defer the
crash to later in execution. Guidance welcome.
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- 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