From e0d419f0349b5eb17086e511bacf57b604e96f9f Mon Sep 17 00:00:00 2001 From: Jia Zhouyang Date: Sun, 4 Mar 2018 20:42:40 +0800 Subject: Add error handling for chdir When chdir fails, print error message and exit. --- local.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/local.c b/local.c index 46ac579..56d589d 100644 --- a/local.c +++ b/local.c @@ -426,7 +426,10 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer) } #ifdef HAVE_CHDIR /* ifndef __EMX__ ? */ - chdir(cgi_dir); + if (chdir(cgi_dir) == -1) { + fprintf(stderr, "failed to chdir to %s: %s\n", cgi_dir, strerror(errno)); + exit(1); + } #endif execl(file, cgi_basename, NULL); fprintf(stderr, "execl(\"%s\", \"%s\", NULL): %s\n", -- cgit v1.2.3 From 996287e2fd03e0050aaaa64398884b1b547a56d0 Mon Sep 17 00:00:00 2001 From: Jia Zhouyang Date: Sun, 4 Mar 2018 20:50:49 +0800 Subject: Add error handling code for fopen Check the return value of fopen, and add proper error handling code. --- file.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/file.c b/file.c index 9b0e947..0333e9a 100644 --- a/file.c +++ b/file.c @@ -611,8 +611,10 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu) if(w3m_reqlog){ FILE *ff; ff = fopen(w3m_reqlog, "a"); - Strfputs(tmp, ff); - fclose(ff); + if(ff){ + Strfputs(tmp, ff); + fclose(ff); + } } if (src) Strfputs(tmp, src); @@ -7580,6 +7582,8 @@ loadImageBuffer(URLFile *uf, Buffer *newBuf) tmp = Sprintf("

", html_quote(image.url)); tmpf = tmpfname(TMPF_SRC, ".html"); src = fopen(tmpf->ptr, "w"); + if (src == NULL) + return NULL; newBuf->mailcap_source = tmpf->ptr; init_stream(&f, SCM_LOCAL, newStrStream(tmp)); -- cgit v1.2.3 From 7a49f77b1ec67910214936229ca5305a2fa6e9c8 Mon Sep 17 00:00:00 2001 From: Jia Zhouyang Date: Sun, 4 Mar 2018 20:57:08 +0800 Subject: Add error handling code for fopen Check the return code of fopen, and return when it fails. --- url.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/url.c b/url.c index d759383..348f501 100644 --- a/url.c +++ b/url.c @@ -1752,6 +1752,8 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, write(sock, tmp->ptr, tmp->length); if(w3m_reqlog){ FILE *ff = fopen(w3m_reqlog, "a"); + if (ff == NULL) + return uf; if (sslh) fputs("HTTPS: request via SSL\n", ff); else @@ -1774,6 +1776,8 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current, write(sock, tmp->ptr, tmp->length); if(w3m_reqlog){ FILE *ff = fopen(w3m_reqlog, "a"); + if (ff == NULL) + return uf; fwrite(tmp->ptr, sizeof(char), tmp->length, ff); fclose(ff); } -- cgit v1.2.3