[w3m-dev 04373] Re: "important" bugs from bugs.debian.org

Hiroyuki Ito <[email protected]> Sun, 08 Aug 2010 19:18:39 +0900 (JST)
Newsgroups gmane.comp.web.w3m.devel
Message-ID <[email protected]>
伊東です。

> rowspanについても類似の問題があるようです。Ubuntu Bugsにパッチが
> 投稿されていましたのでお知らせします。

ご報告ありがとうございます。
下記のように少し変更してコミットしました。

Index: table.c
===================================================================
RCS file: /cvsroot/w3m/w3m/table.c,v
retrieving revision 1.56
diff -u -r1.56 table.c
--- table.c	19 Jul 2010 23:34:01 -0000	1.56
+++ table.c	8 Aug 2010 10:12:59 -0000
@@ -2408,6 +2408,8 @@
 	case HTML_N_COLGROUP:\
 	case HTML_COL
 
+#define ATTR_ROWSPAN_MAX 32766
+
 static int
 feed_table_tag(struct table *tbl, char *line, struct table_mode *mode,
 	       int width, struct parsed_tag *tag)
@@ -2592,6 +2594,11 @@
 	else
 	    valign = HTT_MIDDLE;
 	if (parsedtag_get_value(tag, ATTR_ROWSPAN, &rowspan)) {
+        if(rowspan > ATTR_ROWSPAN_MAX)
+        {
+            fprintf(stderr, "  Table Rowspan too large. Limiting to %d.\n", ATTR_ROWSPAN_MAX);
+            rowspan = ATTR_ROWSPAN_MAX;
+        }
 	    if ((tbl->row + rowspan) >= tbl->max_rowsize)
 		check_row(tbl, tbl->row + rowspan);
 	}