commit 769b10a

uint  ·  2026-01-26 16:25:26 +0000 UTC
parent 8782705
update RANGE_BAD->RANGE_UNSAT where appropriate
1 files changed,  +5, -4
+5, -4
 1@@ -27,7 +27,6 @@ static void reply_text(int c, const char* status, const char* body);
 2 static int stream_file(int c, const struct item* it, const char* hdr, int head_only);
 3 static int write_all(int fd, const void* buf, size_t n);
 4 
 5-
 6 extern struct library lib;
 7 
 8 static const char* cistrstr(const char* hay, const char* nee)
 9@@ -125,9 +124,11 @@ static int parse_range(const char* hdr, size_t total, size_t* start, size_t* end
10 		unsigned long long suf = strtoull(r, &e2, 10);
11 		if (errno != 0 || e2 == r)
12 			return RANGE_BAD;
13+		if (suf == 0)
14+			return RANGE_BAD;
15 
16 		if (total == 0)
17-			return RANGE_BAD;
18+			return RANGE_UNSAT;
19 
20 		if ((size_t)suf >= total) {
21 			*start = 0;
22@@ -156,7 +157,7 @@ static int parse_range(const char* hdr, size_t total, size_t* start, size_t* end
23 	if (*r == '\r' || *r == '\n' || *r == '\0') {
24 		/* bytes=START- */
25 		if ((size_t)a >= total)
26-			return RANGE_BAD;
27+			return RANGE_UNSAT;
28 		*start = (size_t)a;
29 		*end = total - 1;
30 		return RANGE_OK;
31@@ -170,7 +171,7 @@ static int parse_range(const char* hdr, size_t total, size_t* start, size_t* end
32 		return RANGE_BAD;
33 
34 	if ((size_t)a >= total)
35-		return RANGE_BAD;
36+		return RANGE_UNSAT;
37 	if ((size_t)b >= total)
38 		b = total - 1;
39 	if (b < a)