From c7a61ce2c25d4af818c146714defb0a97b826762 Mon Sep 17 00:00:00 2001 From: Martin Nilsson <mani@lysator.liu.se> Date: Fri, 1 Oct 2010 16:07:20 +0200 Subject: [PATCH] A few byte range fixes. Implementation still broken though. Rev: lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/Request.pike:1.52 --- .../Protocols.pmod/HTTP.pmod/Server.pmod/Request.pike | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/Request.pike b/lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/Request.pike index af73f391bd..574e41af40 100644 --- a/lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/Request.pike +++ b/lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/Request.pike @@ -587,9 +587,9 @@ void response_and_finish(mapping m, function|void _log_cb) int a,b; if (sscanf(request_headers->range,"bytes%*[ =]%d-%d",a,b)==3) m->start=a,m->stop=b; - else if (sscanf(request_headers->range,"bytes%*[ =]-%d",b)) + else if (sscanf(request_headers->range,"bytes%*[ =]-%d",b)==2) { - if( m->size==-1 ) + if( m->size==-1 || m->size < b ) { m_delete(m,"file"); m->data=""; @@ -601,7 +601,7 @@ void response_and_finish(mapping m, function|void _log_cb) m->stop=-1; } } - else if (sscanf(request_headers->range,"bytes%*[ =]%d-",a)) + else if (sscanf(request_headers->range,"bytes%*[ =]%d-",a)==2) m->start=a,m->stop=-1; else if (has_value(request_headers->range, ",")) { -- GitLab