aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authorTatsuya Kinoshita <tats@debian.org>2016-11-06 16:25:49 +0000
committerTatsuya Kinoshita <tats@debian.org>2016-11-06 16:25:49 +0000
commit216722ed7282cec4338b177ea9ffdd39ad1b8c8c (patch)
treed1bdbf2e3dbee360b6a6be411c6c78603b4676d1 /file.c
parentPrevent null pointer dereference in HTMLlineproc2body (diff)
downloadw3m-216722ed7282cec4338b177ea9ffdd39ad1b8c8c.tar.gz
w3m-216722ed7282cec4338b177ea9ffdd39ad1b8c8c.zip
Prevent memory exhausted due to repeat appending "</table>"
Bug-Debian: https://github.com/tats/w3m/issues/23
Diffstat (limited to 'file.c')
-rw-r--r--file.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/file.c b/file.c
index 3315e4f..0ae90bd 100644
--- a/file.c
+++ b/file.c
@@ -7008,9 +7008,12 @@ completeHTMLstream(struct html_feed_environ *h_env, struct readbuffer *obuf)
obuf->table_level = MAX_TABLE - 1;
while (obuf->table_level >= 0) {
+ int tmp = obuf->table_level;
table_mode[obuf->table_level].pre_mode
&= ~(TBLM_SCRIPT | TBLM_STYLE | TBLM_PLAIN);
HTMLlineproc1("</table>", h_env);
+ if (obuf->table_level >= tmp)
+ break;
}
}