To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=76245
------- Additional comments from [EMAIL PROTECTED] Thu Apr 12 15:57:02 +0000
2007 -------
So, firstly, thanks for the nice trace - most helpful. This is extremely curious
however:
0x40b4c732 in rtl_str_hash_intern (pHash=0x4405edb0, pString=0x40b759f8,
can_return=0)
at /export/home/cd100003/sal/rtl/source/hash.cxx:74
74 pString->refCount |= SAL_STRING_INTERN_FLAG;
Current language: auto; currently c++
The code immediately before this is:
if (!can_return) // branch taken, as above can_return == 0
{
rtl_uString *pCopy = NULL;
rtl_uString_newFromString( &pCopy, pString );
pString = pCopy;
if (!pString)
return NULL;
}
pString->refCount |= SAL_STRING_INTERN_FLAG;
So - pString is memory returned from rtl_uString_newFromString - so it seems
rather extraordinary that it would return invalid memory.
On the other hand - it -looks- like the code simply doesn't handle the case
where we intern ourselves that well:
void SAL_CALL rtl_uString_intern( rtl_uString ** newStr,
rtl_uString * str)
{
... /* causes problems if *newStr == str */ ...
if (*newStr)
{
rtl_uString_release (*newStr);
*newStr = NULL;
}
rtl_ustring_intern_internal( newStr, str, CANNOT_RETURN );
}
}
But, oddly that code should never be called; cf. ustring.hxx:
rtl_uString * pNew = 0;
rtl_uString_intern( &pNew, pData );
pNew is (in every case here) NULL.
So, in a nut-shell, it's rather unclear how this could happen :-) and/or I'd
love to blame pathalogical heap corruption outside my scope.
---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]