aboutsummaryrefslogtreecommitdiff
path: root/networking/httpd.c
diff options
context:
space:
mode:
authorCem Keylan <cem@ckyln.com>2021-03-09 08:42:47 +0300
committerCem Keylan <cem@ckyln.com>2021-03-09 08:42:47 +0300
commit2106f384939b9627996a77dca7d4310c91f482d7 (patch)
treecf459a74499ea86f2c138b99487a97bb2860a829 /networking/httpd.c
parent09f572b1e859bfb103f654ac86541710d964d9aa (diff)
parent89358a7131d3e75c74af834bb117b4fad7914983 (diff)
downloadbusybox-2106f384939b9627996a77dca7d4310c91f482d7.tar.gz
Merge remote-tracking branch 'upstream/1_33_stable' into 1_33_stable1_33_stable
Diffstat (limited to 'networking/httpd.c')
-rw-r--r--networking/httpd.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/networking/httpd.c b/networking/httpd.c
index 4346141ee..4c014bc71 100644
--- a/networking/httpd.c
+++ b/networking/httpd.c
@@ -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;