diff options
| author | Tatsuya Kinoshita <tats@debian.org> | 2013-08-04 02:30:24 +0000 | 
|---|---|---|
| committer | Tatsuya Kinoshita <tats@debian.org> | 2013-08-04 03:16:49 +0000 | 
| commit | 78200d796dade0f6b14c9fc6715bdda9f2969e6b (patch) | |
| tree | c4e248dd5f0ae002803ed1ff9c977bd1e17b3725 | |
| parent | Debian release 0.5.3-10 (diff) | |
| download | w3m-78200d796dade0f6b14c9fc6715bdda9f2969e6b.tar.gz w3m-78200d796dade0f6b14c9fc6715bdda9f2969e6b.zip | |
Update 130_siteconf.patch to fix segfault (closes: #718612)
| -rw-r--r-- | debian/patches/130_siteconf.patch | 76 | 
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) { | 
