Skip to content

Commit 7b4ab17

Browse files
committed
add test
1 parent d590fc7 commit 7b4ab17

File tree

2 files changed

+35
-0
lines changed

2 files changed

+35
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
node_modules
22
test/fixtures/copy
33
test/fixtures/invalid
4+
test/fixtures/outside

test/index.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
var test = require('tape')
22
var rimraf = require('rimraf')
33
var tar = require('../index')
4+
var tarStream = require('tar-stream')
45
var path = require('path')
56
var fs = require('fs')
67
var os = require('os')
@@ -310,3 +311,36 @@ test('do not extract invalid tar', function (t) {
310311
})
311312
})
312313
})
314+
315+
test('no abs hardlink targets', function (t) {
316+
var out = path.join(__dirname, 'fixtures', 'invalid')
317+
var outside = path.join(__dirname, 'fixtures', 'outside')
318+
319+
rimraf.sync(out)
320+
321+
var s = tarStream.pack()
322+
323+
fs.writeFileSync(outside, 'something')
324+
325+
s.entry({
326+
type: 'link',
327+
name: 'link',
328+
linkname: outside
329+
})
330+
331+
s.entry({
332+
name: 'link'
333+
}, 'overwrite')
334+
335+
s.finalize()
336+
337+
s.pipe(tar.extract(out))
338+
.on('error', function (err) {
339+
t.ok(err, 'had error')
340+
fs.readFile(outside, 'utf-8', function (err, str) {
341+
t.error(err, 'no error')
342+
t.same(str, 'something')
343+
t.end()
344+
})
345+
})
346+
})

0 commit comments

Comments
 (0)