httpd: fix offset for sendfile
No binary (build failed)
—
(log yok)
| @@ -1871,7 +1871,7 @@ static NOINLINE void send_file_and_exit(const char *url, int what) | |
| send_headers(HTTP_OK); | |
| #if ENABLE_FEATURE_USE_SENDFILE | |
| { | |
| - | off_t offset = range_start; |
| + | off_t offset = (range_start < 0) ? 0 : range_start; |
| while (1) { | |
| /* sz is rounded down to 64k */ | |
| ssize_t sz = MAXINT(ssize_t) - 0xffff; | |
| @@ -2486,8 +2486,8 @@ static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr) | |
| if (STRNCASECMP(iobuf, "Range:") == 0) { | |
| /* We know only bytes=NNN-[MMM] */ | |
| char *s = skip_whitespace(iobuf + sizeof("Range:")-1); | |
| - | if (is_prefixed_with(s, "bytes=")) { |
| - | s += sizeof("bytes=")-1; |
| + | s = is_prefixed_with(s, "bytes="); |
| + | if (s) { |
| range_start = BB_STRTOOFF(s, &s, 10); | |
| if (s[0] != '-' || range_start < 0) { | |
| range_start = -1; | |