aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRodrigo Arias Mallo <rodarima@gmail.com>2026-05-27 23:01:16 +0200
committerRodrigo Arias Mallo <rodarima@gmail.com>2026-05-27 23:01:16 +0200
commitd8055639af10041cec953d33a93cae390aec1050 (patch)
tree96ab4a79a9ded9bf3e9a2af43700849a049a0639
parenta32f74522f990c46415977afcd06d0e8d162ea55 (diff)
Fix out of bounds read of size 1HEADmaster
Consider the case when i == len and avoid reading buf[i]. Reported-by: Ben Collver <bencollver@riseup.net>
-rw-r--r--gopher.filter.dpi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gopher.filter.dpi.c b/gopher.filter.dpi.c
index 5a1942a..2bae15e 100644
--- a/gopher.filter.dpi.c
+++ b/gopher.filter.dpi.c
@@ -329,7 +329,7 @@ static void compact_buf(char *buf, size_t start, size_t end) {
static size_t read_line(char *buf, size_t len) {
size_t i;
for (i = 0; i < len && buf[i] != '\r' && buf[i] != '\n'; i++);
- if (buf[i] == '\r' || buf[i] == '\n') {
+ if (i < len && (buf[i] == '\r' || buf[i] == '\n')) {
if (i+1 < len && buf[i+1] == '\n') i++;
render_line(buf, i);
return i+1;