aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authorTatsuya Kinoshita <tats@debian.org>2016-12-07 12:50:56 +0000
committerTatsuya Kinoshita <tats@debian.org>2017-01-06 13:08:22 +0000
commit0e0c6781425dc8f65566e34b1cfa8be83d35a8eb (patch)
tree2166a19272ea0ee2eaecdaef4d90b0f92d116b83 /file.c
parentPrevent array index out of bounds for tridvalue in feed_table_tag() (diff)
downloadw3m-0e0c6781425dc8f65566e34b1cfa8be83d35a8eb.tar.gz
w3m-0e0c6781425dc8f65566e34b1cfa8be83d35a8eb.zip
Prevent negative values for offset and pos in push_link()
Bug-Debian: https://github.com/tats/w3m/issues/64 Bug-Debian: https://github.com/tats/w3m/issues/66 Origin: https://anonscm.debian.org/cgit/collab-maint/w3m.git/commit/?id=ecf57714191b77142da74035b748262cdc80dfb7
Diffstat (limited to 'file.c')
-rw-r--r--file.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/file.c b/file.c
index 330ae3a..483180a 100644
--- a/file.c
+++ b/file.c
@@ -2307,8 +2307,12 @@ push_link(int cmd, int offset, int pos)
struct link_stack *p;
p = New(struct link_stack);
p->cmd = cmd;
- p->offset = offset;
- p->pos = pos;
+ p->offset = (short)offset;
+ if (p->offset < 0)
+ p->offset = 0;
+ p->pos = (short)pos;
+ if (p->pos < 0)
+ p->pos = 0;
p->next = link_stack;
link_stack = p;
}