aboutsummaryrefslogtreecommitdiffstats
path: root/form.c
diff options
context:
space:
mode:
authorTatsuya Kinoshita <tats@debian.org>2016-08-15 11:07:56 +0000
committerTatsuya Kinoshita <tats@debian.org>2016-11-19 05:11:41 +0000
commitf065a49616b8104973e30a2b031102d6b6e11080 (patch)
treeb15c95ffc0e1f8f86c1f52a8844d7c3ef785b22d /form.c
parentPrevent segfault with malformed input type (diff)
downloadw3m-f065a49616b8104973e30a2b031102d6b6e11080.tar.gz
w3m-f065a49616b8104973e30a2b031102d6b6e11080.zip
Prevent segfault for formUpdateBuffer
Bug-Debian: https://github.com/tats/w3m/issues/9 [CVE-2016-9423] Bug-Debian: https://github.com/tats/w3m/issues/10 [CVE-2016-9431] Origin: https://anonscm.debian.org/cgit/collab-maint/w3m.git/commit/?id=9f0bdcfdf061db3520bd1f112bdc5e83acdec4be
Diffstat (limited to 'form.c')
-rw-r--r--form.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/form.c b/form.c
index 62b568e..87a5d49 100644
--- a/form.c
+++ b/form.c
@@ -477,6 +477,8 @@ formUpdateBuffer(Anchor *a, Buffer *buf, FormItemList *form)
spos = a->start.pos;
epos = a->end.pos;
}
+ if (a->start.line != a->end.line || spos > epos)
+ epos = spos;
pos = form_update_line(l, &p, spos, epos, COLPOS(l, epos) - col,
rows > 1,
form->type == FORM_INPUT_PASSWORD);