aboutsummaryrefslogtreecommitdiffstats
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
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
-rw-r--r--debian/patches/925_lineproc.patch45
-rw-r--r--debian/patches/series1
2 files changed, 46 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;
diff --git a/debian/patches/series b/debian/patches/series
index b122606..9919121 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -60,3 +60,4 @@
922_lineproc.patch
923_tagproc.patch
924_curline.patch
+925_lineproc.patch