From f393faf55975a94217df479e1bd06ee4403c6958 Mon Sep 17 00:00:00 2001 From: Tatsuya Kinoshita Date: Sat, 12 Nov 2016 22:19:12 +0900 Subject: Prevent infinite recursion with nested table and textarea Bug-Debian: https://github.com/tats/w3m/issues/20 --- table.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'table.c') diff --git a/table.c b/table.c index 33593b1..53b43b7 100644 --- a/table.c +++ b/table.c @@ -1632,6 +1632,19 @@ renderCoTable(struct table *tbl, int maxlimit) struct table *t; int i, col, row; int indent, maxwidth; + static struct table *tbl_prev = NULL; + static int cotbl_count; +#define MAX_COTABLE 100 + + if (tbl == NULL) + return; + if (tbl != tbl_prev) { + tbl_prev = tbl; + cotbl_count = 0; + } + if (cotbl_count >= MAX_COTABLE) + return; /* workaround to prevent infinite recursion */ + cotbl_count++; for (i = 0; i < tbl->ntable; i++) { t = tbl->tables[i].ptr; -- cgit v1.2.3