Resolves: rhbz#680766 crash in mdds

f41
David Tardon 14 years ago
parent 98381de086
commit 5198193bc3

@ -29,7 +29,7 @@ Summary: Free Software Productivity Suite
Name: libreoffice
Epoch: 1
Version: 3.3.2.2
Release: 2%{?dist}
Release: 3%{?dist}
License: LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and (CDDL or GPLv2) and Public Domain
Group: Applications/Productivity
URL: http://www.documentfoundation.org/develop
@ -129,6 +129,9 @@ Patch40: 0001-Related-rhbz-680460-don-t-bother-with-an-interim-Fon.patch
Patch41: 0001-Resolves-rhbz-680460-honour-lcdfilter-subpixeling-et.patch
Patch42: 0001-Cut-Gordian-Knot-of-who-owns-the-font-options.patch
Patch43: 0001-beware-of-invalidated-iterator.patch
Patch44: rhbz680766.fix-mdds-crash.patch
Patch45: mdds.add-missing-link.patch
Patch46: mdds.do-not-insert-new-node.patch
%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
%define instdir %{_libdir}
@ -775,11 +778,15 @@ mv -f redhat.soc extras/source/palettes/standard.soc
%patch41 -p1 -b .rhbz680460-honour-lcdfilter-subpixeling-et.patch
%patch42 -p1 -b .Cut-Gordian-Knot-of-who-owns-the-font-options.patch
%patch43 -p1 -b .beware-of-invalidated-iterator.patch
%patch44 -p1 -b .rhbz680766.fix-mdds-crash.patch
touch scripting/source/pyprov/delzip
touch scripting/util/provider/beanshell/delzip
touch scripting/util/provider/javascript/delzip
cp %{PATCH45} mdds
cp %{PATCH46} mdds
%build
echo build start time is `date`, diskspace: `df -h . | tail -n 1`
#don't build localized helps which are poorly translated
@ -2121,6 +2128,9 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
%{basisinstdir}/program/kde-open-url
%changelog
* Thu Mar 24 2011 David Tardon <dtardon@redhat.com> 3.3.2.2-3
- Resolves: rhbz#680766 crash in mdds
* Wed Mar 23 2011 David Tardon <dtardon@redhat.com> 3.3.2.2-2
- Related: rhbz#689268 versioned deps need to contain epoch

@ -0,0 +1,15 @@
# HG changeset patch
# Parent d5fb760990e45ae0db4f4b7609d8affb85101a39
add missing link
diff -r d5fb760990e4 -r c08b02a02f23 include/mdds/flat_segment_tree_def.inl
--- a/inc/mdds/flat_segment_tree.hpp Thu Mar 24 14:52:10 2011 +0100
+++ b/inc/mdds/flat_segment_tree.hpp Thu Mar 24 14:53:14 2011 +0100
@@ -438,6 +438,7 @@
m_left_leaf->value_leaf.value = m_init_val;
new_node->left = m_left_leaf;
new_node->right = m_left_leaf->right;
+ m_left_leaf->right->left = new_node;
m_left_leaf->right = new_node;
}

@ -0,0 +1,43 @@
# HG changeset patch
# Parent ff6ad274f8ecb1715d366ddb53ecafd422252660
do not insert new node if the whole range was shifted
diff -r ff6ad274f8ec include/mdds/flat_segment_tree_def.inl
--- a/inc/mdds/flat_segment_tree.hpp Thu Mar 24 14:54:16 2011 +0100
+++ b/inc/mdds/flat_segment_tree.hpp Thu Mar 24 14:55:26 2011 +0100
@@ -430,16 +430,25 @@
if (m_left_leaf->value_leaf.value != m_init_val)
{
- // The leftmost leaf node has a non-initial value. We need to
- // insert a new node to carry that value after the shift.
- node_ptr new_node(new node(true));
- new_node->value_leaf.key = pos + size;
- new_node->value_leaf.value = m_left_leaf->value_leaf.value;
- m_left_leaf->value_leaf.value = m_init_val;
- new_node->left = m_left_leaf;
- new_node->right = m_left_leaf->right;
- m_left_leaf->right->left = new_node;
- m_left_leaf->right = new_node;
+ if (size < m_right_leaf->value_leaf.key - m_left_leaf->value_leaf.key)
+ {
+ // The leftmost leaf node has a non-initial value. We need to
+ // insert a new node to carry that value after the shift.
+ node_ptr new_node(new node(true));
+ new_node->value_leaf.key = pos + size;
+ new_node->value_leaf.value = m_left_leaf->value_leaf.value;
+ m_left_leaf->value_leaf.value = m_init_val;
+ new_node->left = m_left_leaf;
+ new_node->right = m_left_leaf->right;
+ m_left_leaf->right->left = new_node;
+ m_left_leaf->right = new_node;
+ }
+ else
+ {
+ // We shifted out the whole range, so there would be no new
+ // node inserted. Just set default value.
+ m_left_leaf->value_leaf.value = m_init_val;
+ }
}
m_valid_tree = false;

@ -0,0 +1,13 @@
diff -up libreoffice-3.3.2.2/mdds/makefile.mk.dt libreoffice-3.3.2.2/mdds/makefile.mk
--- libreoffice-3.3.2.2/mdds/makefile.mk.dt 2011-03-24 16:59:53.237493218 +0100
+++ libreoffice-3.3.2.2/mdds/makefile.mk 2011-03-24 17:26:51.098221650 +0100
@@ -38,7 +38,8 @@ TARGET=mdds
TARFILE_NAME=mdds_0.3.0
TARFILE_MD5=cf8a6967f7de535ae257fa411c98eb88
-PATCH_FILES=
+PATCH_FILES= mdds.add-missing-link.patch \
+ mdds.do-not-insert-new-node.patch
CONFIGURE_DIR=
CONFIGURE_ACTION=
Loading…
Cancel
Save