diff options
author | Tatsuya Kinoshita <tats@debian.org> | 2016-11-12 13:19:12 +0000 |
---|---|---|
committer | Tatsuya Kinoshita <tats@debian.org> | 2016-11-12 13:50:01 +0000 |
commit | f393faf55975a94217df479e1bd06ee4403c6958 (patch) | |
tree | 584f0c7827f5aeba6e74d7bcc0048e719e9c425f /table.c | |
parent | Update ChangeLog (diff) | |
download | w3m-f393faf55975a94217df479e1bd06ee4403c6958.tar.gz w3m-f393faf55975a94217df479e1bd06ee4403c6958.zip |
Prevent infinite recursion with nested table and textarea
Bug-Debian: https://github.com/tats/w3m/issues/20
Diffstat (limited to 'table.c')
-rw-r--r-- | table.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -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; |