Socket
Socket
Sign inDemoInstall

length-prefixed-stream

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

length-prefixed-stream - npm Package Compare versions

Comparing version 1.3.2 to 1.4.0

14

decode.js

@@ -5,4 +5,4 @@ var varint = require('varint')

var Decoder = function () {
if (!(this instanceof Decoder)) return new Decoder()
var Decoder = function (opts) {
if (!(this instanceof Decoder)) return new Decoder(opts)
stream.Transform.call(this)

@@ -12,3 +12,4 @@

this._message = null
this._prefix = new Buffer(100)
this._limit = opts && opts.limit || 0
this._prefix = new Buffer(this._limit ? varint.encodingLength(this._limit) : 100)
this._ptr = 0

@@ -28,5 +29,7 @@ }

for (offset; offset < data.length; offset++) {
if (this._ptr >= this._prefix.length) return this._prefixError(data)
this._prefix[this._ptr++] = data[offset]
if (!(data[offset] & 0x80)) {
this._missing = varint.decode(this._prefix)
if (this._limit && this._missing > this._limit) return this._prefixError(data)
this._ptr = 0

@@ -39,2 +42,7 @@ return offset + 1

Decoder.prototype._prefixError = function (data) {
this.emit('error', new Error('Message is larger than max length'))
return data.length
}
Decoder.prototype._parseMessage = function (data, offset) {

@@ -41,0 +49,0 @@ var free = data.length - offset

{
"name": "length-prefixed-stream",
"version": "1.3.2",
"version": "1.4.0",
"description": "Streaming length prefixed buffers",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -29,4 +29,14 @@ # length-prefixed-stream

## API
#### `transformStream = lpstream.encode()`
Creates a new encoder transform stream.
#### `transformStream = lpstream.decode()`
Creates a new decoder transform stream.
## License
MIT

@@ -237,1 +237,12 @@ var tape = require('tape')

})
tape('message limit', function (t) {
var d = lpstream.decode({limit: 10})
d.on('error', function (err) {
t.ok(err, 'should error')
t.end()
})
d.write(new Buffer('zzzzzzzzzzzzzz'))
})
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc