tls_read: check return value correctly - hurl - Gopher/HTTP/HTTPS file grabber
(HTM) git clone git://git.codemadness.org/hurl
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 253d3a83fa37c241595e1ccb06332b0d06917443
(DIR) parent 07d17b2f66f68e86d0858c662b86d4486bb1e817
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Tue, 18 Dec 2018 18:25:02 +0100
tls_read: check return value correctly
the value can be negative, but not neccesarily -1. Noticed on a timeout of
some site.
Diffstat:
M hurl.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
---
(DIR) diff --git a/hurl.c b/hurl.c
@@ -185,6 +185,7 @@ https_request(void)
{
struct tls *t = NULL;
char buf[READ_BUF_SIZ], *p;
+ const char *errstr;
size_t n, len;
ssize_t r;
int fd = -1, httpok = 0, ret = 1;
@@ -227,8 +228,9 @@ https_request(void)
string comparison. */
if ((r = tls_read(t, &buf[len], sizeof(buf) - len - 1)) == 0)
break;
- if (r == -1) {
- fprintf(stderr, "tls_read: %s\n", tls_error(t));
+ if (r < 0) {
+ errstr = tls_error(t);
+ fprintf(stderr, "tls_read: %s\n", errstr ? errstr : "");
goto err;
}
}
@@ -263,8 +265,9 @@ https_request(void)
r = tls_read(t, &buf, sizeof(buf));
if (r == 0)
break;
- if (r == -1) {
- fprintf(stderr, "tls_read: %s\n", tls_error(t));
+ if (r < 0) {
+ errstr = tls_error(t);
+ fprintf(stderr, "tls_read: %s\n", errstr ? errstr : "");
goto err;
}
len += r;