[Libreoffice-commits] .: Branch 'libreoffice-3-6' - 2 commits - libvisio/libvisio-0.0.17-fdo48601_part1.patch libvisio/libvisio-0.0.17-fdo48601_part2.patch libvisio/makefile.mk
Fridrich Strba
fridrich at kemper.freedesktop.org
Mon Jun 18 01:26:32 PDT 2012
libvisio/libvisio-0.0.17-fdo48601_part1.patch | 26 ++++++++++
libvisio/libvisio-0.0.17-fdo48601_part2.patch | 64 ++++++++++++++++++++++++++
libvisio/makefile.mk | 2
3 files changed, 92 insertions(+)
New commits:
commit 6677c27574523a75477103ebb35c4c81876633e3
Author: Fridrich Å trba <fridrich.strba at bluewin.ch>
Date: Mon Jun 18 10:20:27 2012 +0200
Trying to solve out of bonds in fdo#48601
Change-Id: Idf9d56714d658a14af826a74c58aad26a9e29414
Signed-off-by: Fridrich Å trba <fridrich.strba at bluewin.ch>
diff --git a/libvisio/libvisio-0.0.17-fdo48601_part2.patch b/libvisio/libvisio-0.0.17-fdo48601_part2.patch
new file mode 100644
index 0000000..5b65d8d
--- /dev/null
+++ b/libvisio/libvisio-0.0.17-fdo48601_part2.patch
@@ -0,0 +1,64 @@
+--- misc/libvisio-0.0.17/src/lib/VSDXContentCollector.cpp 2012-06-18 10:18:48.450129329 +0200
++++ misc/build/libvisio-0.0.17/src/lib/VSDXContentCollector.cpp 2012-06-18 10:18:17.935927778 +0200
+@@ -91,7 +91,8 @@
+ else if (m_fillPattern == 1)
+ {
+ m_fillType = "solid";
+- m_styleProps.insert("draw:fill-color", getColourString(m_colours[colourIndexFG]));
++ if (colourIndexFG < m_colours.size())
++ m_styleProps.insert("draw:fill-color", getColourString(m_colours[colourIndexFG]));
+ if (m_fillFGTransparency > 0)
+ m_styleProps.insert("draw:opacity", (double)(1 - m_fillFGTransparency/255.0), WPX_PERCENT);
+ else
+@@ -101,8 +102,10 @@
+ {
+ m_fillType = "gradient";
+ m_styleProps.insert("draw:style", "axial");
+- m_styleProps.insert("draw:start-color", getColourString(m_colours[colourIndexFG]));
+- m_styleProps.insert("draw:end-color", getColourString(m_colours[colourIndexBG]));
++ if (colourIndexFG < m_colours.size())
++ m_styleProps.insert("draw:start-color", getColourString(m_colours[colourIndexFG]));
++ if (colourIndexBG < m_colours.size())
++ m_styleProps.insert("draw:end-color", getColourString(m_colours[colourIndexBG]));
+ m_styleProps.remove("draw:opacity");
+ if (m_fillBGTransparency > 0)
+ m_styleProps.insert("libwpg:start-opacity", (double)(1 - m_fillBGTransparency/255.0), WPX_PERCENT);
+@@ -123,8 +126,10 @@
+ {
+ m_fillType = "gradient";
+ m_styleProps.insert("draw:style", "linear");
+- m_styleProps.insert("draw:start-color", getColourString(m_colours[colourIndexBG]));
+- m_styleProps.insert("draw:end-color", getColourString(m_colours[colourIndexFG]));
++ if (colourIndexBG < m_colours.size())
++ m_styleProps.insert("draw:start-color", getColourString(m_colours[colourIndexBG]));
++ if (colourIndexFG < m_colours.size())
++ m_styleProps.insert("draw:end-color", getColourString(m_colours[colourIndexFG]));
+ m_styleProps.remove("draw:opacity");
+ if (m_fillBGTransparency > 0)
+ m_styleProps.insert("libwpg:start-opacity", (double)(1 - m_fillBGTransparency/255.0), WPX_PERCENT);
+@@ -170,8 +175,10 @@
+ m_styleProps.insert("draw:style", "rectangular");
+ m_styleProps.insert("svg:cx", 0.5, WPX_PERCENT);
+ m_styleProps.insert("svg:cy", 0.5, WPX_PERCENT);
+- m_styleProps.insert("draw:start-color", getColourString(m_colours[colourIndexBG]));
+- m_styleProps.insert("draw:end-color", getColourString(m_colours[colourIndexFG]));
++ if (colourIndexBG < m_colours.size())
++ m_styleProps.insert("draw:start-color", getColourString(m_colours[colourIndexBG]));
++ if (colourIndexFG < m_colours.size())
++ m_styleProps.insert("draw:end-color", getColourString(m_colours[colourIndexFG]));
+ m_styleProps.remove("draw:opacity");
+ if (m_fillBGTransparency > 0)
+ m_styleProps.insert("libwpg:start-opacity", (double)(1 - m_fillBGTransparency/255.0), WPX_PERCENT);
+@@ -188,8 +195,10 @@
+ {
+ m_fillType = "gradient";
+ m_styleProps.insert("draw:style", "radial");
+- m_styleProps.insert("draw:start-color", getColourString(m_colours[colourIndexBG]));
+- m_styleProps.insert("draw:end-color", getColourString(m_colours[colourIndexFG]));
++ if (colourIndexBG < m_colours.size())
++ m_styleProps.insert("draw:start-color", getColourString(m_colours[colourIndexBG]));
++ if (colourIndexFG < m_colours.size())
++ m_styleProps.insert("draw:end-color", getColourString(m_colours[colourIndexFG]));
+ m_styleProps.remove("draw:opacity");
+ if (m_fillBGTransparency > 0)
+ m_styleProps.insert("libwpg:start-opacity", (double)(1 - m_fillBGTransparency/255.0), WPX_PERCENT);
diff --git a/libvisio/makefile.mk b/libvisio/makefile.mk
index 2855741..1de538b 100644
--- a/libvisio/makefile.mk
+++ b/libvisio/makefile.mk
@@ -60,6 +60,7 @@ TARFILE_MD5=90010e213dd25648e70f0cc12f8fed55
PATCH_FILES=\
$(TARFILE_NAME)-fdo50988.patch \
$(TARFILE_NAME)-fdo48601_part1.patch \
+ $(TARFILE_NAME)-fdo48601_part2.patch \
$(TARFILE_NAME).patch
BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
commit 575583f0531818321216efbf55f880b15edd3dbd
Author: Julien Nabet <serval2412 at yahoo.fr>
Date: Sat Jun 16 15:01:23 2012 +0200
Related: fdo#48601 FILEOPEN: Open Visio's file with bitmap's blocks
This fdo contains 2 files with which I had a different crash for each of them.
This patch fixes one of the 2 crashes.
Change-Id: Ic67cad4de4b66e913debe95efc04db3ae6fbf781
Signed-off-by: Fridrich Å trba <fridrich.strba at bluewin.ch>
diff --git a/libvisio/libvisio-0.0.17-fdo48601_part1.patch b/libvisio/libvisio-0.0.17-fdo48601_part1.patch
new file mode 100644
index 0000000..c73af00
--- /dev/null
+++ b/libvisio/libvisio-0.0.17-fdo48601_part1.patch
@@ -0,0 +1,26 @@
+--- misc/build/libvisio-0.0.17/src/lib/VSDXContentCollector.cpp 2012-06-16 13:41:40.583153038 +0200
++++ misc/libvisio-0.0.17/src/lib/VSDXContentCollector.cpp 2012-06-16 13:44:16.311155881 +0200
+@@ -1131,14 +1131,16 @@
+ if (x <= m_pageWidth && x >= 0)
+ points[x] = y;
+
+- xmove = points.begin()->first;
+- ymove = points.begin()->second;
+- for (std::map<double, double>::iterator iter = points.begin(); iter != points.end(); ++iter)
+- {
+- if (iter->first != xmove || iter->second != ymove)
++ if (!points.empty()) {
++ xmove = points.begin()->first;
++ ymove = points.begin()->second;
++ for (std::map<double, double>::iterator iter = points.begin(); iter != points.end(); ++iter)
+ {
+- xline = iter->first;
+- yline = iter->second;
++ if (iter->first != xmove || iter->second != ymove)
++ {
++ xline = iter->first;
++ yline = iter->second;
++ }
+ }
+ }
+ }
diff --git a/libvisio/makefile.mk b/libvisio/makefile.mk
index 305a32b..2855741 100644
--- a/libvisio/makefile.mk
+++ b/libvisio/makefile.mk
@@ -59,6 +59,7 @@ TARFILE_MD5=90010e213dd25648e70f0cc12f8fed55
PATCH_FILES=\
$(TARFILE_NAME)-fdo50988.patch \
+ $(TARFILE_NAME)-fdo48601_part1.patch \
$(TARFILE_NAME).patch
BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
More information about the Libreoffice-commits
mailing list