pixl-server-storage 3.0.9 → 3.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/engines/Couchbase.js +7 -0
- package/engines/Filesystem.js +7 -0
- package/engines/Redis.js +7 -0
- package/engines/RedisCluster.js +7 -0
- package/engines/S3.js +7 -0
- package/package.json +1 -1
package/engines/Couchbase.js
CHANGED
|
@@ -248,6 +248,13 @@ module.exports = Class.create({
|
|
|
248
248
|
return callback( err, null );
|
|
249
249
|
}
|
|
250
250
|
|
|
251
|
+
// validate byte range, now that we have the head info
|
|
252
|
+
if ((start < 0) || (start >= buf.length) || (end < start) || (end >= buf.length)) {
|
|
253
|
+
download.destroy();
|
|
254
|
+
callback( new Error("Invalid byte range (" + start + '-' + end + ") for key: " + key + " (len: " + buf.length + ")"), null );
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
|
|
251
258
|
var range = buf.slice(start, end + 1);
|
|
252
259
|
var stream = new BufferStream(range);
|
|
253
260
|
callback(null, stream, { mod: 1, len: buf.length });
|
package/engines/Filesystem.js
CHANGED
|
@@ -479,6 +479,13 @@ module.exports = Class.create({
|
|
|
479
479
|
return callback( err, null );
|
|
480
480
|
}
|
|
481
481
|
|
|
482
|
+
// validate byte range, now that we have the head info
|
|
483
|
+
if ((start < 0) || (start >= stats.size) || (end < start) || (end >= stats.size)) {
|
|
484
|
+
download.destroy();
|
|
485
|
+
callback( new Error("Invalid byte range (" + start + '-' + end + ") for key: " + key + " (len: " + stats.size + ")"), null );
|
|
486
|
+
return;
|
|
487
|
+
}
|
|
488
|
+
|
|
482
489
|
// create read stream
|
|
483
490
|
var inp = fs.createReadStream( file, { start, end } );
|
|
484
491
|
|
package/engines/Redis.js
CHANGED
|
@@ -252,6 +252,13 @@ module.exports = Class.create({
|
|
|
252
252
|
return callback( err, null );
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
+
// validate byte range, now that we have the head info
|
|
256
|
+
if ((start < 0) || (start >= buf.length) || (end < start) || (end >= buf.length)) {
|
|
257
|
+
download.destroy();
|
|
258
|
+
callback( new Error("Invalid byte range (" + start + '-' + end + ") for key: " + key + " (len: " + buf.length + ")"), null );
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
|
|
255
262
|
var range = buf.slice(start, end + 1);
|
|
256
263
|
var stream = new BufferStream(range);
|
|
257
264
|
callback(null, stream, { mod: 1, len: buf.length });
|
package/engines/RedisCluster.js
CHANGED
|
@@ -269,6 +269,13 @@ module.exports = Class.create({
|
|
|
269
269
|
return callback( err, null );
|
|
270
270
|
}
|
|
271
271
|
|
|
272
|
+
// validate byte range, now that we have the head info
|
|
273
|
+
if ((start < 0) || (start >= buf.length) || (end < start) || (end >= buf.length)) {
|
|
274
|
+
download.destroy();
|
|
275
|
+
callback( new Error("Invalid byte range (" + start + '-' + end + ") for key: " + key + " (len: " + buf.length + ")"), null );
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
|
|
272
279
|
var range = buf.slice(start, end + 1);
|
|
273
280
|
var stream = new BufferStream(range);
|
|
274
281
|
callback(null, stream, { mod: 1, len: buf.length });
|
package/engines/S3.js
CHANGED
|
@@ -365,6 +365,13 @@ module.exports = Class.create({
|
|
|
365
365
|
return;
|
|
366
366
|
}
|
|
367
367
|
|
|
368
|
+
// validate byte range, now that we have the head info
|
|
369
|
+
if ((start < 0) || (start >= data.ContentLength) || (end < start) || (end >= data.ContentLength)) {
|
|
370
|
+
download.destroy();
|
|
371
|
+
callback( new Error("Invalid byte range (" + start + '-' + end + ") for key: " + key + " (len: " + data.ContentLength + ")"), null );
|
|
372
|
+
return;
|
|
373
|
+
}
|
|
374
|
+
|
|
368
375
|
proceed = true;
|
|
369
376
|
callback( null, download, {
|
|
370
377
|
mod: Math.floor((new Date(data.LastModified)).getTime() / 1000),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pixl-server-storage",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.10",
|
|
4
4
|
"description": "A key/value/list storage component for the pixl-server framework.",
|
|
5
5
|
"author": "Joseph Huckaby <jhuckaby@gmail.com>",
|
|
6
6
|
"homepage": "https://github.com/jhuckaby/pixl-server-storage",
|