aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--table.c4
-rw-r--r--table.h3
3 files changed, 12 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index ee9c774..66f744e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
+ * [w3m-dev 03438] Re: segmentation fault by large complex table.
+ * table.c (check_table_height): check MAXROWCELL
+ * table.h (MAXROWCELL): added
+
+2002-11-16 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
+
* [w3m-dev 03437] Re: Check image size
* fm.h (MAX_IMAGE_SIZE): changed to 2048
@@ -4779,4 +4785,4 @@ a * [w3m-dev 03276] compile error on EWS4800
* release-0-2-1
* import w3m-0.2.1
-$Id: ChangeLog,v 1.521 2002/11/15 15:58:27 ukai Exp $
+$Id: ChangeLog,v 1.522 2002/11/15 16:00:33 ukai Exp $
diff --git a/table.c b/table.c
index cab6ca4..4842b4b 100644
--- a/table.c
+++ b/table.c
@@ -1,4 +1,4 @@
-/* $Id: table.c,v 1.29 2002/11/05 16:43:10 ukai Exp $ */
+/* $Id: table.c,v 1.30 2002/11/15 16:00:33 ukai Exp $ */
/*
* HTML table
*/
@@ -1518,6 +1518,8 @@ check_table_height(struct table *t)
if (cell.row[idx] == j && cell.rowspan[idx] == rowspan)
c = idx;
}
+ if (c >= MAXROWCELL)
+ continue;
if (c >= cell.size) {
if (cell.size == 0) {
cell.size = max(MAXCELL, c + 1);
diff --git a/table.h b/table.h
index 3d3f393..f206f70 100644
--- a/table.h
+++ b/table.h
@@ -1,4 +1,4 @@
-/* $Id: table.h,v 1.6 2002/11/05 15:45:53 ukai Exp $ */
+/* $Id: table.h,v 1.7 2002/11/15 16:00:34 ukai Exp $ */
#if (defined(MESCHACH) && !defined(MATRIX))
#define MATRIX
#endif /* (defined(MESCHACH) && !defined(MATRIX)) */
@@ -34,6 +34,7 @@ typedef unsigned short table_attr;
#define TBL_IN_COL 4
#define MAXCELL 20
+#define MAXROWCELL 1000
struct table_cell {
short col[MAXCELL];
short colspan[MAXCELL];