diff options
author | Tatsuya Kinoshita <tats@debian.org> | 2016-08-17 12:10:30 +0000 |
---|---|---|
committer | Tatsuya Kinoshita <tats@debian.org> | 2016-11-19 05:11:41 +0000 |
commit | ddf28e2cf9e16a559a08ee10ea60d1683b894a16 (patch) | |
tree | a1b16870733ff0c179ad2821afce86c0c1143265 | |
parent | Prevent negative array index for selectnumber and textareanumber (diff) | |
download | w3m-ddf28e2cf9e16a559a08ee10ea60d1683b894a16.tar.gz w3m-ddf28e2cf9e16a559a08ee10ea60d1683b894a16.zip |
Prevent segfault for formUpdateBuffer
Bug-Debian: https://github.com/tats/w3m/issues/13 [CVE-2016-9432]
Origin: https://anonscm.debian.org/cgit/collab-maint/w3m.git/commit/?id=807e8b7fbffca6dcaf5db40e35f05d05c5cf02d3
Origin: https://anonscm.debian.org/cgit/collab-maint/w3m.git/commit/?id=7b88478227978a8d673b4dd0e05eee410cc33330
-rw-r--r-- | form.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -481,8 +481,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; + if (a->start.line != a->end.line || spos > epos || epos >= l->len) + break; pos = form_update_line(l, &p, spos, epos, COLPOS(l, epos) - col, rows > 1, form->type == FORM_INPUT_PASSWORD); |