aboutsummaryrefslogtreecommitdiffstats
path: root/debian/patches/925_lineproc.patch
diff options
context:
space:
mode:
authorTatsuya Kinoshita <tats@debian.org>2016-11-21 15:09:11 +0000
committerTatsuya Kinoshita <tats@debian.org>2016-11-21 15:09:11 +0000
commit2da361a6baf2eba652d88e00509b57a44a400c3b (patch)
treeb0a2a60c63a92531fbd5efcadee3463eb185b58d /debian/patches/925_lineproc.patch
parentNew patch 924_curline.patch to fix near-null deref (diff)
downloadw3m-2da361a6baf2eba652d88e00509b57a44a400c3b.tar.gz
w3m-2da361a6baf2eba652d88e00509b57a44a400c3b.zip
New patch 925_lineproc.patch to fix stack overflow
Diffstat (limited to 'debian/patches/925_lineproc.patch')
-rw-r--r--debian/patches/925_lineproc.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/debian/patches/925_lineproc.patch b/debian/patches/925_lineproc.patch
new file mode 100644
index 0000000..b2626ed
--- /dev/null
+++ b/debian/patches/925_lineproc.patch
@@ -0,0 +1,45 @@
+Subject: Prevent infinite recursion in HTMLlineproc0
+Author: Tatsuya Kinoshita <tats@debian.org>
+Bug-Debian: https://github.com/tats/w3m/issues/36
+Origin: https://anonscm.debian.org/cgit/collab-maint/w3m.git/commit/?id=ff8510ab954ac5db478964351f6a78891c34f1d8
+
+diff --git a/file.c b/file.c
+index ecc1e2f..0cef9ff 100644
+--- a/file.c
++++ b/file.c
+@@ -4909,13 +4909,13 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
+ #ifdef USE_IMAGE
+ i = 0;
+ if (parsedtag_get_value(tag, ATTR_TOP_MARGIN, &i)) {
+- if (i > obuf->top_margin)
+- obuf->top_margin = i;
++ if ((short)i > obuf->top_margin)
++ obuf->top_margin = (short)i;
+ }
+ i = 0;
+ if (parsedtag_get_value(tag, ATTR_BOTTOM_MARGIN, &i)) {
+- if (i > obuf->bottom_margin)
+- obuf->bottom_margin = i;
++ if ((short)i > obuf->bottom_margin)
++ obuf->bottom_margin = (short)i;
+ }
+ #endif
+ return 0;
+@@ -4929,13 +4929,13 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
+ case HTML_INPUT_ALT:
+ i = 0;
+ if (parsedtag_get_value(tag, ATTR_TOP_MARGIN, &i)) {
+- if (i > obuf->top_margin)
+- obuf->top_margin = i;
++ if ((short)i > obuf->top_margin)
++ obuf->top_margin = (short)i;
+ }
+ i = 0;
+ if (parsedtag_get_value(tag, ATTR_BOTTOM_MARGIN, &i)) {
+- if (i > obuf->bottom_margin)
+- obuf->bottom_margin = i;
++ if ((short)i > obuf->bottom_margin)
++ obuf->bottom_margin = (short)i;
+ }
+ if (parsedtag_get_value(tag, ATTR_HSEQ, &hseq)) {
+ obuf->input_alt.hseq = hseq;