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 11node_modules
22test /fixtures /copy
33test /fixtures /invalid
4+ test /fixtures /outside
Original file line number Diff line number Diff line change 11var test = require ( 'tape' )
22var rimraf = require ( 'rimraf' )
33var tar = require ( '../index' )
4+ var tarStream = require ( 'tar-stream' )
45var path = require ( 'path' )
56var fs = require ( 'fs' )
67var 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+ } )
You can’t perform that action at this time.
0 commit comments