Skip to content

Commit e957122

Browse files
committed
Merge pull request webtorrent#154 from feross/safe-buffer
Use safe-buffer
2 parents 30ab8e6 + 2959c2c commit e957122

File tree

14 files changed

+44
-24
lines changed

14 files changed

+44
-24
lines changed

client.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
module.exports = Client
22

3+
var Buffer = require('safe-buffer').Buffer
34
var debug = require('debug')('bittorrent-tracker')
45
var EventEmitter = require('events').EventEmitter
56
var extend = require('xtend')
@@ -46,13 +47,13 @@ function Client (opts) {
4647
self.peerId = typeof opts.peerId === 'string'
4748
? opts.peerId
4849
: opts.peerId.toString('hex')
49-
self._peerIdBuffer = new Buffer(self.peerId, 'hex')
50+
self._peerIdBuffer = Buffer.from(self.peerId, 'hex')
5051
self._peerIdBinary = self._peerIdBuffer.toString('binary')
5152

5253
self.infoHash = typeof opts.infoHash === 'string'
5354
? opts.infoHash
5455
: opts.infoHash.toString('hex')
55-
self._infoHashBuffer = new Buffer(self.infoHash, 'hex')
56+
self._infoHashBuffer = Buffer.from(self.infoHash, 'hex')
5657
self._infoHashBinary = self._infoHashBuffer.toString('binary')
5758

5859
self._port = opts.port
@@ -131,7 +132,7 @@ Client.scrape = function (opts, cb) {
131132

132133
var clientOpts = extend(opts, {
133134
infoHash: Array.isArray(opts.infoHash) ? opts.infoHash[0] : opts.infoHash,
134-
peerId: new Buffer('01234567890123456789'), // dummy value
135+
peerId: Buffer.from('01234567890123456789'), // dummy value
135136
port: 6881 // dummy value
136137
})
137138

@@ -156,9 +157,9 @@ Client.scrape = function (opts, cb) {
156157

157158
opts.infoHash = Array.isArray(opts.infoHash)
158159
? opts.infoHash.map(function (infoHash) {
159-
return new Buffer(String(infoHash), 'hex')
160+
return Buffer.from(infoHash, 'hex')
160161
})
161-
: new Buffer(String(opts.infoHash), 'hex')
162+
: Buffer.from(opts.infoHash, 'hex')
162163
client.scrape({ infoHash: opts.infoHash })
163164
return client
164165
}

lib/client/udp-tracker.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
module.exports = UDPTracker
22

33
var BN = require('bn.js')
4+
var Buffer = require('safe-buffer').Buffer
45
var compact2string = require('compact2string')
56
var debug = require('debug')('bittorrent-tracker:udp-tracker')
67
var dgram = require('dgram')
@@ -196,7 +197,7 @@ UDPTracker.prototype._request = function (opts) {
196197
self.client._infoHashBuffer,
197198
self.client._peerIdBuffer,
198199
toUInt64(opts.downloaded),
199-
opts.left != null ? toUInt64(opts.left) : new Buffer('FFFFFFFFFFFFFFFF', 'hex'),
200+
opts.left != null ? toUInt64(opts.left) : Buffer.from('FFFFFFFFFFFFFFFF', 'hex'),
200201
toUInt64(opts.uploaded),
201202
common.toUInt32(common.EVENTS[opts.event] || 0),
202203
common.toUInt32(0), // ip address (optional)
@@ -223,11 +224,11 @@ UDPTracker.prototype._request = function (opts) {
223224
}
224225

225226
function genTransactionId () {
226-
return new Buffer(hat(32), 'hex')
227+
return Buffer.from(hat(32), 'hex')
227228
}
228229

229230
function toUInt16 (n) {
230-
var buf = new Buffer(2)
231+
var buf = Buffer.allocUnsafe(2)
231232
buf.writeUInt16BE(n, 0)
232233
return buf
233234
}
@@ -240,7 +241,7 @@ function toUInt64 (n) {
240241
while (bytes.length < 8) {
241242
bytes.unshift(0)
242243
}
243-
return new Buffer(bytes)
244+
return Buffer.from(bytes)
244245
}
245246
return Buffer.concat([common.toUInt32(0), common.toUInt32(n)])
246247
}

lib/common-node.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* These are separate from common.js so they can be skipped when bundling for the browser.
44
*/
55

6+
var Buffer = require('safe-buffer').Buffer
67
var querystring = require('querystring')
78

89
exports.IPV4_RE = /^[\d\.]+$/
@@ -26,7 +27,7 @@ exports.EVENT_NAMES = {
2627
}
2728

2829
function toUInt32 (n) {
29-
var buf = new Buffer(4)
30+
var buf = Buffer.allocUnsafe(4)
3031
buf.writeUInt32BE(n, 0)
3132
return buf
3233
}

lib/common.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,24 @@
22
* Functions/constants needed by both the client and server.
33
*/
44

5+
var Buffer = require('safe-buffer').Buffer
56
var extend = require('xtend/mutable')
67

78
exports.DEFAULT_ANNOUNCE_PEERS = 50
89
exports.MAX_ANNOUNCE_PEERS = 82
910

1011
exports.binaryToHex = function (str) {
11-
return new Buffer(str, 'binary').toString('hex')
12+
if (typeof str !== 'string') {
13+
str = String(str)
14+
}
15+
return Buffer.from(str, 'binary').toString('hex')
1216
}
1317

1418
exports.hexToBinary = function (str) {
15-
return new Buffer(str, 'hex').toString('binary')
19+
if (typeof str !== 'string') {
20+
str = String(str)
21+
}
22+
return Buffer.from(str, 'hex').toString('binary')
1623
}
1724

1825
var config = require('./common-node')

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"random-iterate": "^1.0.1",
3333
"run-parallel": "^1.1.2",
3434
"run-series": "^1.0.2",
35+
"safe-buffer": "^5.0.0",
3536
"simple-get": "^2.0.0",
3637
"simple-peer": "^6.0.0",
3738
"simple-websocket": "^4.0.0",

server.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
module.exports = Server
22

3+
var Buffer = require('safe-buffer').Buffer
34
var bencode = require('bencode')
45
var debug = require('debug')('bittorrent-tracker')
56
var dgram = require('dgram')
@@ -674,7 +675,7 @@ function makeUdpPacket (params) {
674675
packet = Buffer.concat([
675676
common.toUInt32(common.ACTIONS.ERROR),
676677
common.toUInt32(params.transactionId || 0),
677-
new Buffer(params['failure reason'], 'utf8')
678+
Buffer.from(String(params['failure reason']))
678679
])
679680
break
680681
default:

test/client-large-torrent.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
var Buffer = require('safe-buffer').Buffer
12
var Client = require('../')
23
var common = require('./common')
34
var fixtures = require('webtorrent-fixtures')
45
var test = require('tape')
56

6-
var peerId = new Buffer('01234567890123456789')
7+
var peerId = Buffer.from('01234567890123456789')
78

89
function testLargeTorrent (t, serverType) {
910
t.plan(9)

test/client-magnet.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
var Buffer = require('safe-buffer').Buffer
12
var Client = require('../')
23
var common = require('./common')
34
var fixtures = require('webtorrent-fixtures')
45
var magnet = require('magnet-uri')
56
var test = require('tape')
67

7-
var peerId = new Buffer('01234567890123456789')
8+
var peerId = Buffer.from('01234567890123456789')
89

910
function testMagnet (t, serverType) {
1011
t.plan(9)

test/client-ws-socket-pool.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1+
var Buffer = require('safe-buffer').Buffer
12
var Client = require('../')
23
var common = require('./common')
34
var fixtures = require('webtorrent-fixtures')
45
var test = require('tape')
56

6-
var peerId = new Buffer('01234567890123456789')
7+
var peerId = Buffer.from('01234567890123456789')
78
var port = 6681
89

910
test('ensure client.destroy() callback is called with re-used websockets in socketPool', function (t) {

test/client.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
var Buffer = require('safe-buffer').Buffer
12
var Client = require('../')
23
var common = require('./common')
34
var fixtures = require('webtorrent-fixtures')
45
var test = require('tape')
56

6-
var peerId1 = new Buffer('01234567890123456789')
7-
var peerId2 = new Buffer('12345678901234567890')
8-
var peerId3 = new Buffer('23456789012345678901')
7+
var peerId1 = Buffer.from('01234567890123456789')
8+
var peerId2 = Buffer.from('12345678901234567890')
9+
var peerId3 = Buffer.from('23456789012345678901')
910
var port = 6881
1011

1112
function testClientStart (t, serverType) {

0 commit comments

Comments
 (0)