[openoffice.org/f13/master] Resolves: rhbz#631543 [abrt] crash on dereferencing dangling pointer passed down from SwCalc::Str2Do

David Tardon dtardon at fedoraproject.org
Wed Sep 8 12:33:21 UTC 2010


commit d59f3a035f3286287ac455be92790ea9251d62dc
Author: David Tardon <dtardon at redhat.com>
Date:   Wed Sep 8 14:33:04 2010 +0200

    Resolves: rhbz#631543 [abrt] crash on dereferencing dangling pointer passed down from SwCalc::Str2Double

 ...0.ooo114409.sw.prevent-dangling-ptr-deref.patch |   47 ++++++++++++++++++++
 openoffice.org.spec                                |    6 ++-
 2 files changed, 52 insertions(+), 1 deletions(-)
---
diff --git a/openoffice.org-3.2.0.ooo114409.sw.prevent-dangling-ptr-deref.patch b/openoffice.org-3.2.0.ooo114409.sw.prevent-dangling-ptr-deref.patch
new file mode 100644
index 0000000..3f2a5ba
--- /dev/null
+++ b/openoffice.org-3.2.0.ooo114409.sw.prevent-dangling-ptr-deref.patch
@@ -0,0 +1,47 @@
+# HG changeset patch
+# Parent b682cbb775c33b3969bce1d52e4b0164b42c1bb6
+#i114409# prevent deref. of dangling ptr if there is no other instance of SvtSysLocale hanging around somewhere
+
+diff -r b682cbb775c3 sw/source/core/bastyp/calc.cxx
+--- a/sw/source/core/bastyp/calc.cxx	Tue Aug 17 14:47:10 2010 +0200
++++ b/sw/source/core/bastyp/calc.cxx	Wed Sep 08 14:22:51 2010 +0200
+@@ -1620,9 +1620,10 @@
+ BOOL SwCalc::Str2Double( const String& rCommand, xub_StrLen& rCommandPos,
+ 							double& rVal, const LocaleDataWrapper* pLclData )
+ {
++    const SvtSysLocale aSysLocale;
+ 	const LocaleDataWrapper* pLclD = pLclData;
+ 	if( !pLclD )
+-		pLclD = &SvtSysLocale().GetLocaleData();
++		pLclD = aSysLocale.GetLocaleDataPtr();
+ 
+ 	const xub_Unicode nCurrCmdPos = rCommandPos;
+     rtl_math_ConversionStatus eStatus;
+@@ -1634,7 +1635,7 @@
+             &eStatus, &pEnd );
+ 	rCommandPos = static_cast<xub_StrLen>(pEnd - rCommand.GetBuffer());
+ 
+-	if( !pLclData && pLclD != &SvtSysLocale().GetLocaleData() )
++	if( !pLclData && pLclD != &aSysLocale.GetLocaleData() )
+ 		delete (LocaleDataWrapper*)pLclD;
+ 
+ 	return rtl_math_ConversionStatus_Ok == eStatus && nCurrCmdPos != rCommandPos;
+@@ -1643,7 +1644,8 @@
+ BOOL SwCalc::Str2Double( const String& rCommand, xub_StrLen& rCommandPos,
+ 							double& rVal, SwDoc* pDoc )
+ {
+-	const LocaleDataWrapper* pLclD = &SvtSysLocale().GetLocaleData();
++    const SvtSysLocale aSysLocale;
++	const LocaleDataWrapper* pLclD = aSysLocale.GetLocaleDataPtr();
+ 	if( pDoc )
+ 	{
+ 
+@@ -1664,7 +1666,7 @@
+             &eStatus, &pEnd );
+ 	rCommandPos = static_cast<xub_StrLen>(pEnd - rCommand.GetBuffer());
+ 
+-	if( pLclD != &SvtSysLocale().GetLocaleData() )
++	if( pLclD != &aSysLocale.GetLocaleData() )
+ 		delete (LocaleDataWrapper*)pLclD;
+ 
+ 	return rtl_math_ConversionStatus_Ok == eStatus && nCurrCmdPos != rCommandPos;
diff --git a/openoffice.org.spec b/openoffice.org.spec
index 9841a5e..d47462b 100644
--- a/openoffice.org.spec
+++ b/openoffice.org.spec
@@ -173,6 +173,7 @@ Patch102: openoffice.org-3.3.0.ooo106591.sal.tradcopy.patch
 Patch103: workspace.impress197.patch
 Patch104: openoffice.org-3.3.0.ooo113856.vcl.mutter.patch
 Patch105: openoffice.org-3.1.1.rhbz568277.avoid-crash-in-docx-import.patch
+Patch106: openoffice.org-3.2.0.ooo114409.sw.prevent-dangling-ptr-deref.patch
 
 %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
 %define instdir %{_libdir}
@@ -1776,6 +1777,7 @@ cp -p %{SOURCE5} external/unowinreg/unowinreg.dll
 %patch103 -p1 -b .workspace.impress197.patch
 %patch104 -p1 -b .ooo113856.vcl.mutter.patch
 %patch105 -p1 -b .rhbz568277.avoid-crash-in-docx-import.patch
+%patch106 -p1 -b .ooo114409.sw.prevent-dangling-ptr-deref.patch
 
 %build
 echo build start time is `date`, diskspace: `df -h . | tail -n 1`
@@ -4261,8 +4263,10 @@ fi
 %endif
 
 %changelog
-* Sat Aug 14 2010 Caolán McNamara <caolanm at redhat.com> - 1:3.2.0-12.32-UNBUILT
+* Wed Sep 08 2010 Caolán McNamara <caolanm at redhat.com> - 1:3.2.0-12.32-UNBUILT
 - Resolves: rhbz#568277 workaround to avoid the crash (dtardon)
+- Resolves: rhbz#631543 [abrt] crash on dereferencing dangling
+  pointer passed down from SwCalc::Str2Double (dtardon)
 
 * Fri Aug 13 2010 Caolán McNamara <caolanm at redhat.com> - 1:3.2.0-12.31
 - Resolves: rhbz#623800 gnome-shell/mutter focus problems


More information about the scm-commits mailing list