aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTatsuya Kinoshita <tats@debian.org>2016-11-17 10:33:09 +0000
committerTatsuya Kinoshita <tats@debian.org>2016-11-17 10:33:09 +0000
commitecfdcbe1131591502c5e7f9ff4f34b24c5a2db97 (patch)
tree7e504022fdb982f55c80f423fa510c0c74b865de
parentUpdate ChangeLog (diff)
downloadw3m-ecfdcbe1131591502c5e7f9ff4f34b24c5a2db97.tar.gz
w3m-ecfdcbe1131591502c5e7f9ff4f34b24c5a2db97.zip
Prevent deref null pointer in HTMLlineproc0()
Bug-Debian: https://github.com/tats/w3m/issues/42
-rw-r--r--file.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/file.c b/file.c
index 534e5c9..86af3a9 100644
--- a/file.c
+++ b/file.c
@@ -6330,10 +6330,10 @@ HTMLlineproc0(char *line, struct html_feed_environ *h_env, int internal)
while (*line != '\0') {
char *str, *p;
int is_tag = FALSE;
- int pre_mode = (obuf->table_level >= 0) ? tbl_mode->pre_mode :
- obuf->flag;
- int end_tag = (obuf->table_level >= 0) ? tbl_mode->end_tag :
- obuf->end_tag;
+ int pre_mode = (obuf->table_level >= 0 && tbl_mode) ?
+ tbl_mode->pre_mode : obuf->flag;
+ int end_tag = (obuf->table_level >= 0 && tbl_mode) ?
+ tbl_mode->end_tag : obuf->end_tag;
if (*line == '<' || obuf->status != R_ST_NORMAL) {
/*
@@ -6415,7 +6415,7 @@ HTMLlineproc0(char *line, struct html_feed_environ *h_env, int internal)
}
proc_normal:
- if (obuf->table_level >= 0) {
+ if (obuf->table_level >= 0 && tbl && tbl_mode) {
/*
* within table: in <table>..</table>, all input tokens
* are fed to the table renderer, and then the renderer