summaryrefslogtreecommitdiff
path: root/math/gnumeric
diff options
context:
space:
mode:
authorJoe Marcus Clarke <marcus@FreeBSD.org>2003-01-09 18:48:33 +0000
committerJoe Marcus Clarke <marcus@FreeBSD.org>2003-01-09 18:48:33 +0000
commit2b9db89b12be39e5639558c2b49229904c80a026 (patch)
tree43556497c12b75335f97e8cd61bd831cc6ba16de /math/gnumeric
parentNew port: ct, v6eval (diff)
Implement the vendor fix for the recent stack overflow bug. This fix
increases the buffer size ten-fold, but allocates memory dynamically on the heap. Obtained from: GNOME CVS
Notes
Notes: svn path=/head/; revision=72820
Diffstat (limited to 'math/gnumeric')
-rw-r--r--math/gnumeric/Makefile2
-rw-r--r--math/gnumeric/files/patch-src_xml-io.c31
2 files changed, 29 insertions, 4 deletions
diff --git a/math/gnumeric/Makefile b/math/gnumeric/Makefile
index 5d2b19810a55..a94b0b6530ae 100644
--- a/math/gnumeric/Makefile
+++ b/math/gnumeric/Makefile
@@ -7,7 +7,7 @@
PORTNAME= gnumeric
PORTVERSION= 1.0.12
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES?= math gnome
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= sources/${PORTNAME}/1.0
diff --git a/math/gnumeric/files/patch-src_xml-io.c b/math/gnumeric/files/patch-src_xml-io.c
index 8445637e409d..23d57e643117 100644
--- a/math/gnumeric/files/patch-src_xml-io.c
+++ b/math/gnumeric/files/patch-src_xml-io.c
@@ -1,11 +1,36 @@
---- src/xml-io.c.orig Mon Jan 6 15:45:21 2003
-+++ src/xml-io.c Mon Jan 6 15:44:40 2003
+--- src/xml-io.c.orig Thu Jan 9 13:44:58 2003
++++ src/xml-io.c Thu Jan 9 13:46:41 2003
@@ -67,7 +67,7 @@
/* FIXME - tune the values below */
/* libxml1 parser bug breaks multibyte characters on buffer margins */
-#define XML_INPUT_BUFFER_SIZE 1024*1024
-+#define XML_INPUT_BUFFER_SIZE 1024*768
++#define XML_INPUT_BUFFER_SIZE (10*1024*1024)
#define N_ELEMENTS_BETWEEN_UPDATES 20
/* ------------------------------------------------------------------------- */
+@@ -3350,7 +3350,7 @@
+ struct stat sbuf;
+ gint file_size;
+ ErrorInfo *open_error;
+- gchar buffer[XML_INPUT_BUFFER_SIZE];
++ gchar *buffer;
+ gint bytes;
+ xmlParserCtxtPtr pctxt;
+ xmlDocPtr res;
+@@ -3387,6 +3387,7 @@
+ io_progress_message (context, _("Reading file..."));
+ io_progress_range_push (context, 0.0, 0.5);
+ value_io_progress_set (context, file_size, 0);
++ buffer = g_new (char, XML_INPUT_BUFFER_SIZE);
+ bytes = gzread (f, buffer, 4);
+ pctxt = xmlCreatePushParserCtxt (NULL, NULL, buffer, bytes, filename);
+
+@@ -3395,6 +3396,7 @@
+ value_io_progress_update (context, lseek (fd, 0, SEEK_CUR));
+ }
+ xmlParseChunk (pctxt, buffer, 0, 1);
++ g_free (buffer);
+
+ res = pctxt->myDoc;
+ xmlFreeParserCtxt (pctxt);