File tree Expand file tree Collapse file tree 2 files changed +35
-0
lines changed Expand file tree Collapse file tree 2 files changed +35
-0
lines changed Original file line number Diff line number Diff line change 1
1
node_modules
2
2
test /fixtures /copy
3
3
test /fixtures /invalid
4
+ test /fixtures /outside
Original file line number Diff line number Diff line change 1
1
var test = require ( 'tape' )
2
2
var rimraf = require ( 'rimraf' )
3
3
var tar = require ( '../index' )
4
+ var tarStream = require ( 'tar-stream' )
4
5
var path = require ( 'path' )
5
6
var fs = require ( 'fs' )
6
7
var os = require ( 'os' )
@@ -310,3 +311,36 @@ test('do not extract invalid tar', function (t) {
310
311
} )
311
312
} )
312
313
} )
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
+ } )
You can’t perform that action at this time.
0 commit comments