diff --git a/lib/DAV/handler.js b/lib/DAV/handler.js index 1570f14e..75d894d6 100644 --- a/lib/DAV/handler.js +++ b/lib/DAV/handler.js @@ -472,8 +472,11 @@ exports.STATUS_MAP = { var offlen = end - start + 1; // Prevent buffer error // https://github.com/joyent/node/blob/v0.4.5/lib/buffer.js#L337 - if (offlen < start) - start = offlen; + if (end < start) { + var swapTmp = end; + end = start; + start = swapTmp; + } // report a different end offset, corrected by 1: var clientEnd = end > 0 ? end - 1 : end; @@ -485,7 +488,7 @@ exports.STATUS_MAP = { self.httpResponse.writeHead(206, httpHeaders); }; - node.getStream(start, offlen, function(err, data) { + node.getStream(start, end, function(err, data) { if (err) { if (!writeStreamingHeader) { self.httpResponse.end();