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)