aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTatsuya Kinoshita <tats@debian.org>2013-08-04 02:30:24 +0000
committerTatsuya Kinoshita <tats@debian.org>2013-08-04 03:16:49 +0000
commit78200d796dade0f6b14c9fc6715bdda9f2969e6b (patch)
treec4e248dd5f0ae002803ed1ff9c977bd1e17b3725
parentDebian release 0.5.3-10 (diff)
downloadw3m-78200d796dade0f6b14c9fc6715bdda9f2969e6b.tar.gz
w3m-78200d796dade0f6b14c9fc6715bdda9f2969e6b.zip
Update 130_siteconf.patch to fix segfault (closes: #718612)
Diffstat (limited to '')
-rw-r--r--debian/patches/130_siteconf.patch76
1 files changed, 45 insertions, 31 deletions
diff --git a/debian/patches/130_siteconf.patch b/debian/patches/130_siteconf.patch
index 4b3c352..9f8124f 100644
--- a/debian/patches/130_siteconf.patch
+++ b/debian/patches/130_siteconf.patch
@@ -1,11 +1,11 @@
Subject: New feature: siteconf
-From: AIDA Shinra <shinra@j10n.org>
-Date: Wed, 27 Jun 2012 20:43:46 +0900
Origin: upstream, http://www.sic.med.tohoku.ac.jp/~satodai/w3m-dev/201206.month/4464.html
Patch to support the siteconf feature, from [w3m-dev 04464]
on 2012-06-27, provided by AIDA Shinra.
+Updated to fix segfault of loadGeneralFile() by Tatsuya Kinoshita.
+
diff --git a/anchor.c b/anchor.c
index 27bbd56..39f221d 100644
--- a/anchor.c
@@ -257,7 +257,7 @@ index 0000000..f173087
+Hostnames, however, are always converted to lowercases before compared.
+
diff --git a/file.c b/file.c
-index 567d41e..22b76d9 100644
+index 567d41e..b342de0 100644
--- a/file.c
+++ b/file.c
@@ -47,11 +47,11 @@ static JMP_BUF AbortLoading;
@@ -482,7 +482,21 @@ index 567d41e..22b76d9 100644
if (pu.label) {
if (proc == loadHTMLBuffer) {
Anchor *a;
-@@ -3228,7 +3208,7 @@ process_img(struct parsed_tag *tag, int width)
+@@ -2287,10 +2267,11 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
+ if (header_string)
+ header_string = NULL;
+ #ifdef USE_NNTP
+- if (f.scheme == SCM_NNTP || f.scheme == SCM_NEWS)
++ if (b && b != NO_BUFFER && (f.scheme == SCM_NNTP || f.scheme == SCM_NEWS))
+ reAnchorNewsheader(b);
+ #endif
+- preFormUpdateBuffer(b);
++ if (b && b != NO_BUFFER)
++ preFormUpdateBuffer(b);
+ TRAP_OFF;
+ return b;
+ }
+@@ -3228,7 +3209,7 @@ process_img(struct parsed_tag *tag, int width)
if (!parsedtag_get_value(tag, ATTR_SRC, &p))
return tmp;
@@ -491,7 +505,7 @@ index 567d41e..22b76d9 100644
q = NULL;
parsedtag_get_value(tag, ATTR_ALT, &q);
if (!pseudoInlines && (q == NULL || (*q == '\0' && ignore_null_img_alt)))
-@@ -3322,12 +3302,7 @@ process_img(struct parsed_tag *tag, int width)
+@@ -3322,12 +3303,7 @@ process_img(struct parsed_tag *tag, int width)
Image image;
ParsedURL u;
@@ -504,7 +518,7 @@ index 567d41e..22b76d9 100644
image.url = parsedURL2Str(&u)->ptr;
if (!uncompressed_file_type(u.file, &image.ext))
image.ext = filename_extension(u.file, TRUE);
-@@ -4084,6 +4059,7 @@ process_form_int(struct parsed_tag *tag, int fid)
+@@ -4084,6 +4060,7 @@ process_form_int(struct parsed_tag *tag, int fid)
parsedtag_get_value(tag, ATTR_METHOD, &p);
q = "!CURRENT_URL!";
parsedtag_get_value(tag, ATTR_ACTION, &q);
@@ -512,7 +526,7 @@ index 567d41e..22b76d9 100644
r = NULL;
#ifdef USE_M17N
if (parsedtag_get_value(tag, ATTR_ACCEPT_CHARSET, &r))
-@@ -5067,11 +5043,10 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
+@@ -5067,11 +5044,10 @@ HTMLtagproc1(struct parsed_tag *tag, struct html_feed_environ *h_env)
}
return 1;
case HTML_BASE:
@@ -526,7 +540,7 @@ index 567d41e..22b76d9 100644
parseURL(p, cur_baseURL, NULL);
}
#endif
-@@ -5329,6 +5304,13 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5329,6 +5305,13 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
#ifdef MENU_SELECT
Anchor **a_select = NULL;
#endif
@@ -540,7 +554,7 @@ index 567d41e..22b76d9 100644
if (out_size == 0) {
out_size = LINELEN;
-@@ -5523,16 +5505,17 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5523,16 +5506,17 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
hseq = 0;
id = NULL;
if (parsedtag_get_value(tag, ATTR_NAME, &id)) {
@@ -562,7 +576,7 @@ index 567d41e..22b76d9 100644
parsedtag_get_value(tag, ATTR_TITLE, &s);
parsedtag_get_value(tag, ATTR_ACCESSKEY, &t);
parsedtag_get_value(tag, ATTR_HSEQ, &hseq);
-@@ -5618,7 +5601,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5618,7 +5602,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
ParsedURL u;
Image *image;
@@ -571,7 +585,7 @@ index 567d41e..22b76d9 100644
a_img->image = image = New(Image);
image->url = parsedURL2Str(&u)->ptr;
if (!uncompressed_file_type(u.file, &image->ext))
-@@ -5639,7 +5622,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5639,7 +5623,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
image->map = q;
image->ismap = ismap;
image->touch = 0;
@@ -580,7 +594,7 @@ index 567d41e..22b76d9 100644
IMG_FLAG_SKIP);
}
else if (iseq < 0) {
-@@ -5761,8 +5744,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5761,8 +5745,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
break;
if (parsedtag_get_value(tag, ATTR_HREF, &p)) {
MapArea *a;
@@ -591,7 +605,7 @@ index 567d41e..22b76d9 100644
t = NULL;
parsedtag_get_value(tag, ATTR_TARGET, &t);
q = "";
-@@ -5811,11 +5794,14 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5811,11 +5795,14 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
break;
case HTML_BASE:
if (parsedtag_get_value(tag, ATTR_HREF, &p)) {
@@ -608,7 +622,7 @@ index 567d41e..22b76d9 100644
}
if (parsedtag_get_value(tag, ATTR_TARGET, &p))
buf->baseTarget =
-@@ -5830,8 +5816,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5830,8 +5817,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
int refresh_interval = getMetaRefreshParam(q, &tmp);
#ifdef USE_ALARM
if (tmp) {
@@ -619,7 +633,7 @@ index 567d41e..22b76d9 100644
buf->event = setAlarmEvent(buf->event,
refresh_interval,
AL_IMPLICIT_ONCE,
-@@ -5844,8 +5830,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5844,8 +5831,8 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
FUNCNAME_reload, NULL);
#else
if (tmp && refresh_interval == 0) {
@@ -630,7 +644,7 @@ index 567d41e..22b76d9 100644
pushEvent(FUNCNAME_gorURL, p);
}
#endif
-@@ -5929,7 +5915,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
+@@ -5929,7 +5916,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
#ifdef ID_EXT
id = NULL;
if (parsedtag_get_value(tag, ATTR_ID, &id)) {
@@ -639,7 +653,7 @@ index 567d41e..22b76d9 100644
registerName(buf, id, currentLn(buf), pos);
}
if (renderFrameSet &&
-@@ -5982,7 +5968,8 @@ addLink(Buffer *buf, struct parsed_tag *tag)
+@@ -5982,7 +5969,8 @@ addLink(Buffer *buf, struct parsed_tag *tag)
parsedtag_get_value(tag, ATTR_HREF, &href);
if (href)
@@ -649,7 +663,7 @@ index 567d41e..22b76d9 100644
parsedtag_get_value(tag, ATTR_TITLE, &title);
parsedtag_get_value(tag, ATTR_TYPE, &ctype);
parsedtag_get_value(tag, ATTR_REL, &rel);
-@@ -6963,8 +6950,6 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
+@@ -6963,8 +6951,6 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
image_flag = IMG_FLAG_AUTO;
else
image_flag = IMG_FLAG_SKIP;
@@ -658,7 +672,7 @@ index 567d41e..22b76d9 100644
#endif
if (w3m_halfload) {
-@@ -6987,6 +6972,9 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
+@@ -6987,6 +6973,9 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
htmlenv1.f = stdout;
else
htmlenv1.buf = newTextLineList();
@@ -668,7 +682,7 @@ index 567d41e..22b76d9 100644
if (SETJMP(AbortLoading) != 0) {
HTMLlineproc1("<br>Transfer Interrupted!<br>", &htmlenv1);
-@@ -7048,7 +7036,7 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
+@@ -7048,7 +7037,7 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
}
#endif
lineBuf2 = convertLine(f, lineBuf2, HTML_MODE, &charset, doc_charset);
@@ -677,7 +691,7 @@ index 567d41e..22b76d9 100644
cur_document_charset = charset;
#endif
HTMLlineproc0(lineBuf2->ptr, &htmlenv1, internal);
-@@ -7060,6 +7048,12 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
+@@ -7060,6 +7049,12 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal)
obuf.status = R_ST_NORMAL;
completeHTMLstream(&htmlenv1, &obuf);
flushline(&htmlenv1, &obuf, 0, 2, htmlenv1.limit);
@@ -690,7 +704,7 @@ index 567d41e..22b76d9 100644
if (htmlenv1.title)
newBuf->buffername = htmlenv1.title;
if (w3m_halfdump) {
-@@ -7207,7 +7201,7 @@ loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset)
+@@ -7207,7 +7202,7 @@ loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset)
q = Strnew_m_charp("gopher://", host->ptr, ":", port->ptr,
"/", file->ptr, NULL)->ptr;
Strcat_m_charp(tmp, "<a href=\"",
@@ -699,7 +713,7 @@ index 567d41e..22b76d9 100644
"\">", p, html_quote(name->ptr + 1), "</a>\n", NULL);
}
-@@ -7331,6 +7325,7 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
+@@ -7331,6 +7326,7 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
URLFile f;
MySignalHandler(*volatile prevtrap) (SIGNAL_ARG) = NULL;
struct stat st;
@@ -707,7 +721,7 @@ index 567d41e..22b76d9 100644
loadImage(newBuf, IMG_FLAG_STOP);
image.url = uf->url;
-@@ -7338,8 +7333,8 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
+@@ -7338,8 +7334,8 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf)
image.width = -1;
image.height = -1;
image.cache = NULL;
@@ -718,7 +732,7 @@ index 567d41e..22b76d9 100644
!stat(cache->file, &st))
goto image_buffer;
-@@ -7580,8 +7575,11 @@ openGeneralPagerBuffer(InputStream stream)
+@@ -7580,8 +7576,11 @@ openGeneralPagerBuffer(InputStream stream)
#ifdef USE_M17N
content_charset = 0;
#endif
@@ -731,7 +745,7 @@ index 567d41e..22b76d9 100644
readHeader(&uf, t_buf, TRUE, NULL);
t = checkContentType(t_buf);
if (t == NULL)
-@@ -7609,14 +7607,13 @@ openGeneralPagerBuffer(InputStream stream)
+@@ -7609,14 +7608,13 @@ openGeneralPagerBuffer(InputStream stream)
#ifdef USE_IMAGE
else if (activeImage && displayImage && !useExtImageViewer &&
!(w3m_dump & ~DUMP_FRAME) && !strncasecmp(t, "image/", 6)) {
@@ -748,7 +762,7 @@ index 567d41e..22b76d9 100644
UFclose(&uf);
if (buf == NULL || buf == NO_BUFFER)
return buf;
-@@ -7629,8 +7626,6 @@ openGeneralPagerBuffer(InputStream stream)
+@@ -7629,8 +7627,6 @@ openGeneralPagerBuffer(InputStream stream)
}
}
buf->real_type = t;
@@ -757,7 +771,7 @@ index 567d41e..22b76d9 100644
return buf;
}
-@@ -7823,9 +7818,8 @@ save2tmp(URLFile uf, char *tmpf)
+@@ -7823,9 +7819,8 @@ save2tmp(URLFile uf, char *tmpf)
return 0;
}
@@ -769,7 +783,7 @@ index 567d41e..22b76d9 100644
{
Str tmpf, command;
struct mailcap *mcap;
-@@ -7834,7 +7828,7 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
+@@ -7834,7 +7829,7 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
char *header, *src = NULL, *ext = uf.ext;
if (!(mcap = searchExtViewer(type)))
@@ -778,7 +792,7 @@ index 567d41e..22b76d9 100644
if (mcap->nametemplate) {
tmpf = unquote_mailcap(mcap->nametemplate, NULL, "", NULL, NULL);
-@@ -7867,15 +7861,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
+@@ -7867,15 +7862,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
UFclose(&uf);
myExec(command->ptr);
}
@@ -796,7 +810,7 @@ index 567d41e..22b76d9 100644
}
}
if (mcap->flags & (MAILCAP_HTMLOUTPUT | MAILCAP_COPIOUSOUTPUT)) {
-@@ -7918,14 +7910,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
+@@ -7918,14 +7911,13 @@ doExternal(URLFile uf, char *path, char *type, Buffer **bufp,
buf = NO_BUFFER;
}
if (buf && buf != NO_BUFFER) {