From 75716075bafdc5617399dd7a6aa32efb8c032705 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Tue, 9 Jun 2026 16:13:47 +0200 Subject: [PATCH] utils: Set errno to EAGAIN in parse_chunk_header --- src/lib/sock.c | 2 +- src/lib/utils.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/sock.c b/src/lib/sock.c index 5cf094f..523b096 100644 --- a/src/lib/sock.c +++ b/src/lib/sock.c @@ -430,7 +430,7 @@ long sock_recv_chunk_header(sock *s) { buf_ptr[ret1] = 0; if ((ret2 = parse_chunk_header(buf, (buf_ptr - buf) + ret1, &len)) == -1) { - if (errno == EPROTO) { + if (errno != EAGAIN) { return -1; } else { if (sock_recv_x(s, buf_ptr, ret1, 0) == -1) diff --git a/src/lib/utils.c b/src/lib/utils.c index 31808d1..245b545 100644 --- a/src/lib/utils.c +++ b/src/lib/utils.c @@ -424,9 +424,9 @@ long ftelll(FILE *file) { return lines + 1; } -long parse_chunk_header(const char *buf, size_t len, size_t *ret_len) { +long parse_chunk_header(const char *buf, const size_t len, size_t *ret_len) { for (int i = 0; i < len; i++) { - char ch = buf[i]; + const char ch = buf[i]; if (ch == '\r') { continue; } else if (ch == '\n' && i > 1 && buf[i - 1] == '\r') { @@ -437,5 +437,6 @@ long parse_chunk_header(const char *buf, size_t len, size_t *ret_len) { return -1; } } + errno = EAGAIN; return -1; }