diff --git a/file.c b/file.c index a8f2fc6..53af4ac 100644 --- a/file.c +++ b/file.c @@ -608,7 +608,7 @@ readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu) if (src) newBuf->header_source = tmpf; } - while ((tmp = StrmyUFgets(uf))->length) { + while ((tmp = StrmyUFgets(uf)) && tmp->length) { #ifdef USE_NNTP if (uf->scheme == SCM_NEWS && tmp->ptr[0] == '.') Strshrinkfirst(tmp, 1); @@ -6328,7 +6328,7 @@ file_feed() { Str s; s = StrISgets(_file_lp2); - if (s->length == 0) { + if (s && s->length == 0) { ISclose(_file_lp2); return NULL; } @@ -7339,7 +7339,7 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal) #endif if (IStype(f->stream) != IST_ENCODED) f->stream = newEncodedStream(f->stream, f->encoding); - while ((lineBuf2 = StrmyUFgets(f))->length) { + while ((lineBuf2 = StrmyUFgets(f)) && lineBuf2->length) { #ifdef USE_NNTP if (f->scheme == SCM_NEWS && lineBuf2->ptr[0] == '.') { Strshrinkfirst(lineBuf2, 1); @@ -7496,7 +7496,7 @@ loadGopherDir0(URLFile *uf, ParsedURL *pu) pre = 0; while (1) { - if (lbuf = StrUFgets(uf), lbuf->length == 0) + if (!(lbuf = StrUFgets(uf)) || lbuf->length == 0) break; if (lbuf->ptr[0] == '.' && (lbuf->ptr[1] == '\n' || lbuf->ptr[1] == '\r')) @@ -7666,7 +7666,7 @@ loadBuffer(URLFile *uf, Buffer *volatile newBuf) nlines = 0; if (IStype(uf->stream) != IST_ENCODED) uf->stream = newEncodedStream(uf->stream, uf->encoding); - while ((lineBuf2 = StrmyISgets(uf->stream))->length) { + while ((lineBuf2 = StrmyISgets(uf->stream)) && lineBuf2->length) { #ifdef USE_NNTP if (uf->scheme == SCM_NEWS && lineBuf2->ptr[0] == '.') { Strshrinkfirst(lineBuf2, 1); @@ -8090,7 +8090,8 @@ getNextPage(Buffer *buf, int plen) init_stream(&uf, SCM_UNKNOWN, NULL); for (i = 0; i < plen; i++) { - lineBuf2 = StrmyISgets(buf->pagerSource); + if (!(lineBuf2 = StrmyISgets(buf->pagerSource))) + return NULL; if (lineBuf2->length == 0) { /* Assume that `cmd == buf->filename' */ if (buf->filename) diff --git a/frame.c b/frame.c index c595c40..be1a961 100644 --- a/frame.c +++ b/frame.c @@ -532,7 +532,7 @@ createFrameFile(struct frameset *f, FILE * f1, Buffer *current, int level, !strcasecmp(frame.body->type, "text/plain")) { Str tmp; fprintf(f1, "
\n"); - while ((tmp = StrmyUFgets(&f2))->length) { + while ((tmp = StrmyUFgets(&f2)) && tmp->length) { tmp = convertLine(NULL, tmp, HTML_MODE, &charset, doc_charset); fprintf(f1, "%s", html_quote(tmp->ptr)); @@ -549,7 +549,7 @@ createFrameFile(struct frameset *f, FILE * f1, Buffer *current, int level, do { if (*p == '\0') { Str tmp = StrmyUFgets(&f2); - if (tmp->length == 0) + if (!tmp || tmp->length == 0) break; tmp = convertLine(NULL, tmp, HTML_MODE, &charset, doc_charset); diff --git a/ftp.c b/ftp.c index 2ca0247..f73d239 100644 --- a/ftp.c +++ b/ftp.c @@ -70,7 +70,8 @@ ftp_command(FTP ftp, char *cmd, char *arg, int *status) if (!status) return NULL; *status = -1; /* error */ - tmp = StrISgets(ftp->rf); + if (!(tmp = StrISgets(ftp->rf))) + return NULL; if (IS_DIGIT(tmp->ptr[0]) && IS_DIGIT(tmp->ptr[1]) && IS_DIGIT(tmp->ptr[2]) && tmp->ptr[3] == ' ') sscanf(tmp->ptr, "%d", status); @@ -87,7 +88,8 @@ ftp_command(FTP ftp, char *cmd, char *arg, int *status) * with the same code, followed immediately by Space, * optionally some text, and the Telnet end-of-line code. */ while (1) { - tmp = StrISgets(ftp->rf); + if (!(tmp = StrISgets(ftp->rf))) + break; if (IS_DIGIT(tmp->ptr[0]) && IS_DIGIT(tmp->ptr[1]) && IS_DIGIT(tmp->ptr[2]) && tmp->ptr[3] == ' ') { sscanf(tmp->ptr, "%d", status); diff --git a/news.c b/news.c index 7791cde..66667e4 100644 --- a/news.c +++ b/news.c @@ -51,7 +51,7 @@ news_command(News * news, char *cmd, char *arg, int *status) return NULL; *status = -1; tmp = StrISgets(news->rf); - if (tmp->length) + if (tmp && tmp->length) sscanf(tmp->ptr, "%d", status); return tmp; } @@ -396,7 +396,8 @@ loadNewsgroup0(ParsedURL *pu) if (status == 224) { f.scheme = SCM_NEWS; while (1) { - tmp = StrISgets(current_news.rf); + if (!(tmp = StrISgets(current_news.rf))) + break; if (NEWS_ENDLINE(tmp->ptr)) break; if (sscanf(tmp->ptr, "%d", &i) != 1) @@ -474,7 +475,8 @@ loadNewsgroup0(ParsedURL *pu) if (status != 215) goto news_end; while (1) { - tmp = StrISgets(current_news.rf); + if (!(tmp = StrISgets(current_news.rf))) + break; if (NEWS_ENDLINE(tmp->ptr)) break; if (flag < 2) {