Skip to content

Commit 9f8a12f

Browse files
committedAug 15, 2017
Strip null bytes from extended path/linkpath entries
Fix #127
1 parent a37ec72 commit 9f8a12f

11 files changed

+1206
-2
lines changed
 

‎lib/parse.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -240,12 +240,12 @@ module.exports = warner(class Parser extends EE {
240240
case 'NextFileHasLongPath':
241241
case 'OldGnuLongPath':
242242
this[EX] = this[EX] || Object.create(null)
243-
this[EX].path = this[META]
243+
this[EX].path = this[META].replace(/\0.*/, '')
244244
break
245245

246246
case 'NextFileHasLongLinkpath':
247247
this[EX] = this[EX] || Object.create(null)
248-
this[EX].linkpath = this[META]
248+
this[EX].linkpath = this[META].replace(/\0.*/, '')
249249
break
250250

251251
/* istanbul ignore next */
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
[
2+
[
3+
"ignoredEntry",
4+
{
5+
"extended": null,
6+
"globalExtended": null,
7+
"type": "Directory",
8+
"meta": false,
9+
"ignore": true,
10+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
11+
"mode": 509,
12+
"uid": 1000,
13+
"gid": 1000,
14+
"uname": null,
15+
"gname": null,
16+
"size": 0,
17+
"mtime": "2017-07-31T22:21:58.000Z",
18+
"atime": null,
19+
"ctime": null,
20+
"linkpath": "",
21+
"header": {
22+
"cksumValid": true,
23+
"needPax": false,
24+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
25+
"mode": 509,
26+
"uid": 1000,
27+
"gid": 1000,
28+
"size": 0,
29+
"mtime": "2017-07-31T22:21:58.000Z",
30+
"cksum": 11228,
31+
"linkpath": "",
32+
"uname": null,
33+
"gname": null,
34+
"devmaj": 0,
35+
"devmin": 0,
36+
"atime": null,
37+
"ctime": null
38+
}
39+
}
40+
],
41+
[
42+
"meta",
43+
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
44+
],
45+
[
46+
"ignoredEntry",
47+
{
48+
"extended": {
49+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
50+
},
51+
"globalExtended": null,
52+
"type": "File",
53+
"meta": false,
54+
"ignore": true,
55+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
56+
"mode": 436,
57+
"uid": 1000,
58+
"gid": 1000,
59+
"uname": null,
60+
"gname": null,
61+
"size": 200,
62+
"mtime": "2017-07-31T22:21:53.000Z",
63+
"atime": null,
64+
"ctime": null,
65+
"linkpath": "",
66+
"header": {
67+
"cksumValid": true,
68+
"needPax": false,
69+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_",
70+
"mode": 436,
71+
"uid": 1000,
72+
"gid": 1000,
73+
"size": 200,
74+
"mtime": "2017-07-31T22:21:53.000Z",
75+
"cksum": 15210,
76+
"linkpath": "",
77+
"uname": null,
78+
"gname": null,
79+
"devmaj": 0,
80+
"devmin": 0,
81+
"atime": null,
82+
"ctime": null
83+
}
84+
}
85+
],
86+
[
87+
"nullBlock"
88+
],
89+
[
90+
"nullBlock"
91+
],
92+
[
93+
"nullBlock"
94+
],
95+
[
96+
"nullBlock"
97+
],
98+
[
99+
"nullBlock"
100+
],
101+
[
102+
"nullBlock"
103+
],
104+
[
105+
"nullBlock"
106+
],
107+
[
108+
"nullBlock"
109+
],
110+
[
111+
"nullBlock"
112+
],
113+
[
114+
"nullBlock"
115+
],
116+
[
117+
"nullBlock"
118+
],
119+
[
120+
"nullBlock"
121+
],
122+
[
123+
"nullBlock"
124+
],
125+
[
126+
"nullBlock"
127+
],
128+
[
129+
"nullBlock"
130+
],
131+
[
132+
"end"
133+
]
134+
]
+134
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
[
2+
[
3+
"ignoredEntry",
4+
{
5+
"extended": null,
6+
"globalExtended": null,
7+
"type": "Directory",
8+
"meta": false,
9+
"ignore": true,
10+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
11+
"mode": 509,
12+
"uid": 1000,
13+
"gid": 1000,
14+
"uname": null,
15+
"gname": null,
16+
"size": 0,
17+
"mtime": "2017-07-31T22:21:58.000Z",
18+
"atime": null,
19+
"ctime": null,
20+
"linkpath": "",
21+
"header": {
22+
"cksumValid": true,
23+
"needPax": false,
24+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
25+
"mode": 509,
26+
"uid": 1000,
27+
"gid": 1000,
28+
"size": 0,
29+
"mtime": "2017-07-31T22:21:58.000Z",
30+
"cksum": 11228,
31+
"linkpath": "",
32+
"uname": null,
33+
"gname": null,
34+
"devmaj": 0,
35+
"devmin": 0,
36+
"atime": null,
37+
"ctime": null
38+
}
39+
}
40+
],
41+
[
42+
"meta",
43+
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
44+
],
45+
[
46+
"ignoredEntry",
47+
{
48+
"extended": {
49+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
50+
},
51+
"globalExtended": null,
52+
"type": "File",
53+
"meta": false,
54+
"ignore": true,
55+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
56+
"mode": 436,
57+
"uid": 1000,
58+
"gid": 1000,
59+
"uname": null,
60+
"gname": null,
61+
"size": 200,
62+
"mtime": "2017-07-31T22:21:53.000Z",
63+
"atime": null,
64+
"ctime": null,
65+
"linkpath": "",
66+
"header": {
67+
"cksumValid": true,
68+
"needPax": false,
69+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_",
70+
"mode": 436,
71+
"uid": 1000,
72+
"gid": 1000,
73+
"size": 200,
74+
"mtime": "2017-07-31T22:21:53.000Z",
75+
"cksum": 15210,
76+
"linkpath": "",
77+
"uname": null,
78+
"gname": null,
79+
"devmaj": 0,
80+
"devmin": 0,
81+
"atime": null,
82+
"ctime": null
83+
}
84+
}
85+
],
86+
[
87+
"nullBlock"
88+
],
89+
[
90+
"nullBlock"
91+
],
92+
[
93+
"nullBlock"
94+
],
95+
[
96+
"nullBlock"
97+
],
98+
[
99+
"nullBlock"
100+
],
101+
[
102+
"nullBlock"
103+
],
104+
[
105+
"nullBlock"
106+
],
107+
[
108+
"nullBlock"
109+
],
110+
[
111+
"nullBlock"
112+
],
113+
[
114+
"nullBlock"
115+
],
116+
[
117+
"nullBlock"
118+
],
119+
[
120+
"nullBlock"
121+
],
122+
[
123+
"nullBlock"
124+
],
125+
[
126+
"nullBlock"
127+
],
128+
[
129+
"nullBlock"
130+
],
131+
[
132+
"end"
133+
]
134+
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
[
2+
[
3+
"ignoredEntry",
4+
{
5+
"extended": null,
6+
"globalExtended": null,
7+
"type": "Directory",
8+
"meta": false,
9+
"ignore": true,
10+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
11+
"mode": 509,
12+
"uid": 1000,
13+
"gid": 1000,
14+
"uname": null,
15+
"gname": null,
16+
"size": 0,
17+
"mtime": "2017-07-31T22:21:58.000Z",
18+
"atime": null,
19+
"ctime": null,
20+
"linkpath": "",
21+
"header": {
22+
"cksumValid": true,
23+
"needPax": false,
24+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
25+
"mode": 509,
26+
"uid": 1000,
27+
"gid": 1000,
28+
"size": 0,
29+
"mtime": "2017-07-31T22:21:58.000Z",
30+
"cksum": 11228,
31+
"linkpath": "",
32+
"uname": null,
33+
"gname": null,
34+
"devmaj": 0,
35+
"devmin": 0,
36+
"atime": null,
37+
"ctime": null
38+
}
39+
}
40+
],
41+
[
42+
"ignoredEntry",
43+
{
44+
"extended": null,
45+
"globalExtended": null,
46+
"type": "NextFileHasLongPath",
47+
"meta": true,
48+
"ignore": true,
49+
"path": "././@LongLink",
50+
"mode": 420,
51+
"uid": 0,
52+
"gid": 0,
53+
"uname": null,
54+
"gname": null,
55+
"size": 122,
56+
"mtime": "1970-01-01T00:00:00.000Z",
57+
"atime": null,
58+
"ctime": null,
59+
"linkpath": "",
60+
"header": {
61+
"cksumValid": true,
62+
"needPax": false,
63+
"path": "././@LongLink",
64+
"mode": 420,
65+
"uid": 0,
66+
"gid": 0,
67+
"size": 122,
68+
"mtime": "1970-01-01T00:00:00.000Z",
69+
"cksum": 4995,
70+
"linkpath": "",
71+
"uname": null,
72+
"gname": null,
73+
"devmaj": 0,
74+
"devmin": 0,
75+
"atime": null,
76+
"ctime": null
77+
}
78+
}
79+
],
80+
[
81+
"ignoredEntry",
82+
{
83+
"extended": null,
84+
"globalExtended": null,
85+
"type": "File",
86+
"meta": false,
87+
"ignore": true,
88+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_",
89+
"mode": 436,
90+
"uid": 1000,
91+
"gid": 1000,
92+
"uname": null,
93+
"gname": null,
94+
"size": 200,
95+
"mtime": "2017-07-31T22:21:53.000Z",
96+
"atime": null,
97+
"ctime": null,
98+
"linkpath": "",
99+
"header": {
100+
"cksumValid": true,
101+
"needPax": false,
102+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_",
103+
"mode": 436,
104+
"uid": 1000,
105+
"gid": 1000,
106+
"size": 200,
107+
"mtime": "2017-07-31T22:21:53.000Z",
108+
"cksum": 15210,
109+
"linkpath": "",
110+
"uname": null,
111+
"gname": null,
112+
"devmaj": 0,
113+
"devmin": 0,
114+
"atime": null,
115+
"ctime": null
116+
}
117+
}
118+
],
119+
[
120+
"nullBlock"
121+
],
122+
[
123+
"nullBlock"
124+
],
125+
[
126+
"nullBlock"
127+
],
128+
[
129+
"nullBlock"
130+
],
131+
[
132+
"nullBlock"
133+
],
134+
[
135+
"nullBlock"
136+
],
137+
[
138+
"nullBlock"
139+
],
140+
[
141+
"nullBlock"
142+
],
143+
[
144+
"nullBlock"
145+
],
146+
[
147+
"nullBlock"
148+
],
149+
[
150+
"nullBlock"
151+
],
152+
[
153+
"nullBlock"
154+
],
155+
[
156+
"nullBlock"
157+
],
158+
[
159+
"nullBlock"
160+
],
161+
[
162+
"nullBlock"
163+
],
164+
[
165+
"end"
166+
]
167+
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
[
2+
[
3+
"ignoredEntry",
4+
{
5+
"extended": null,
6+
"globalExtended": null,
7+
"type": "Directory",
8+
"meta": false,
9+
"ignore": true,
10+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
11+
"mode": 509,
12+
"uid": 1000,
13+
"gid": 1000,
14+
"uname": null,
15+
"gname": null,
16+
"size": 0,
17+
"mtime": "2017-07-31T22:21:58.000Z",
18+
"atime": null,
19+
"ctime": null,
20+
"linkpath": "",
21+
"header": {
22+
"cksumValid": true,
23+
"needPax": false,
24+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
25+
"mode": 509,
26+
"uid": 1000,
27+
"gid": 1000,
28+
"size": 0,
29+
"mtime": "2017-07-31T22:21:58.000Z",
30+
"cksum": 11228,
31+
"linkpath": "",
32+
"uname": null,
33+
"gname": null,
34+
"devmaj": 0,
35+
"devmin": 0,
36+
"atime": null,
37+
"ctime": null
38+
}
39+
}
40+
],
41+
[
42+
"ignoredEntry",
43+
{
44+
"extended": null,
45+
"globalExtended": null,
46+
"type": "NextFileHasLongPath",
47+
"meta": true,
48+
"ignore": true,
49+
"path": "././@LongLink",
50+
"mode": 420,
51+
"uid": 0,
52+
"gid": 0,
53+
"uname": null,
54+
"gname": null,
55+
"size": 122,
56+
"mtime": "1970-01-01T00:00:00.000Z",
57+
"atime": null,
58+
"ctime": null,
59+
"linkpath": "",
60+
"header": {
61+
"cksumValid": true,
62+
"needPax": false,
63+
"path": "././@LongLink",
64+
"mode": 420,
65+
"uid": 0,
66+
"gid": 0,
67+
"size": 122,
68+
"mtime": "1970-01-01T00:00:00.000Z",
69+
"cksum": 4995,
70+
"linkpath": "",
71+
"uname": null,
72+
"gname": null,
73+
"devmaj": 0,
74+
"devmin": 0,
75+
"atime": null,
76+
"ctime": null
77+
}
78+
}
79+
],
80+
[
81+
"ignoredEntry",
82+
{
83+
"extended": null,
84+
"globalExtended": null,
85+
"type": "File",
86+
"meta": false,
87+
"ignore": true,
88+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_",
89+
"mode": 436,
90+
"uid": 1000,
91+
"gid": 1000,
92+
"uname": null,
93+
"gname": null,
94+
"size": 200,
95+
"mtime": "2017-07-31T22:21:53.000Z",
96+
"atime": null,
97+
"ctime": null,
98+
"linkpath": "",
99+
"header": {
100+
"cksumValid": true,
101+
"needPax": false,
102+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_",
103+
"mode": 436,
104+
"uid": 1000,
105+
"gid": 1000,
106+
"size": 200,
107+
"mtime": "2017-07-31T22:21:53.000Z",
108+
"cksum": 15210,
109+
"linkpath": "",
110+
"uname": null,
111+
"gname": null,
112+
"devmaj": 0,
113+
"devmin": 0,
114+
"atime": null,
115+
"ctime": null
116+
}
117+
}
118+
],
119+
[
120+
"nullBlock"
121+
],
122+
[
123+
"nullBlock"
124+
],
125+
[
126+
"nullBlock"
127+
],
128+
[
129+
"nullBlock"
130+
],
131+
[
132+
"nullBlock"
133+
],
134+
[
135+
"nullBlock"
136+
],
137+
[
138+
"nullBlock"
139+
],
140+
[
141+
"nullBlock"
142+
],
143+
[
144+
"nullBlock"
145+
],
146+
[
147+
"nullBlock"
148+
],
149+
[
150+
"nullBlock"
151+
],
152+
[
153+
"nullBlock"
154+
],
155+
[
156+
"nullBlock"
157+
],
158+
[
159+
"nullBlock"
160+
],
161+
[
162+
"nullBlock"
163+
],
164+
[
165+
"end"
166+
]
167+
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
[
2+
[
3+
"entry",
4+
{
5+
"extended": null,
6+
"globalExtended": null,
7+
"type": "Directory",
8+
"meta": false,
9+
"ignore": false,
10+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
11+
"mode": 509,
12+
"uid": 1000,
13+
"gid": 1000,
14+
"uname": null,
15+
"gname": null,
16+
"size": 0,
17+
"mtime": "2017-07-31T22:21:58.000Z",
18+
"atime": null,
19+
"ctime": null,
20+
"linkpath": "",
21+
"header": {
22+
"cksumValid": true,
23+
"needPax": false,
24+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
25+
"mode": 509,
26+
"uid": 1000,
27+
"gid": 1000,
28+
"size": 0,
29+
"mtime": "2017-07-31T22:21:58.000Z",
30+
"cksum": 11228,
31+
"linkpath": "",
32+
"uname": null,
33+
"gname": null,
34+
"devmaj": 0,
35+
"devmin": 0,
36+
"atime": null,
37+
"ctime": null
38+
}
39+
}
40+
],
41+
[
42+
"ignoredEntry",
43+
{
44+
"extended": null,
45+
"globalExtended": null,
46+
"type": "NextFileHasLongPath",
47+
"meta": true,
48+
"ignore": true,
49+
"path": "././@LongLink",
50+
"mode": 420,
51+
"uid": 0,
52+
"gid": 0,
53+
"uname": null,
54+
"gname": null,
55+
"size": 122,
56+
"mtime": "1970-01-01T00:00:00.000Z",
57+
"atime": null,
58+
"ctime": null,
59+
"linkpath": "",
60+
"header": {
61+
"cksumValid": true,
62+
"needPax": false,
63+
"path": "././@LongLink",
64+
"mode": 420,
65+
"uid": 0,
66+
"gid": 0,
67+
"size": 122,
68+
"mtime": "1970-01-01T00:00:00.000Z",
69+
"cksum": 4995,
70+
"linkpath": "",
71+
"uname": null,
72+
"gname": null,
73+
"devmaj": 0,
74+
"devmin": 0,
75+
"atime": null,
76+
"ctime": null
77+
}
78+
}
79+
],
80+
[
81+
"entry",
82+
{
83+
"extended": null,
84+
"globalExtended": null,
85+
"type": "File",
86+
"meta": false,
87+
"ignore": false,
88+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_",
89+
"mode": 436,
90+
"uid": 1000,
91+
"gid": 1000,
92+
"uname": null,
93+
"gname": null,
94+
"size": 200,
95+
"mtime": "2017-07-31T22:21:53.000Z",
96+
"atime": null,
97+
"ctime": null,
98+
"linkpath": "",
99+
"header": {
100+
"cksumValid": true,
101+
"needPax": false,
102+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_",
103+
"mode": 436,
104+
"uid": 1000,
105+
"gid": 1000,
106+
"size": 200,
107+
"mtime": "2017-07-31T22:21:53.000Z",
108+
"cksum": 15210,
109+
"linkpath": "",
110+
"uname": null,
111+
"gname": null,
112+
"devmaj": 0,
113+
"devmin": 0,
114+
"atime": null,
115+
"ctime": null
116+
}
117+
}
118+
],
119+
[
120+
"nullBlock"
121+
],
122+
[
123+
"nullBlock"
124+
],
125+
[
126+
"nullBlock"
127+
],
128+
[
129+
"nullBlock"
130+
],
131+
[
132+
"nullBlock"
133+
],
134+
[
135+
"nullBlock"
136+
],
137+
[
138+
"nullBlock"
139+
],
140+
[
141+
"nullBlock"
142+
],
143+
[
144+
"nullBlock"
145+
],
146+
[
147+
"nullBlock"
148+
],
149+
[
150+
"nullBlock"
151+
],
152+
[
153+
"nullBlock"
154+
],
155+
[
156+
"nullBlock"
157+
],
158+
[
159+
"nullBlock"
160+
],
161+
[
162+
"nullBlock"
163+
],
164+
[
165+
"end"
166+
]
167+
]
+167
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
[
2+
[
3+
"entry",
4+
{
5+
"extended": null,
6+
"globalExtended": null,
7+
"type": "Directory",
8+
"meta": false,
9+
"ignore": false,
10+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
11+
"mode": 509,
12+
"uid": 1000,
13+
"gid": 1000,
14+
"uname": null,
15+
"gname": null,
16+
"size": 0,
17+
"mtime": "2017-07-31T22:21:58.000Z",
18+
"atime": null,
19+
"ctime": null,
20+
"linkpath": "",
21+
"header": {
22+
"cksumValid": true,
23+
"needPax": false,
24+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
25+
"mode": 509,
26+
"uid": 1000,
27+
"gid": 1000,
28+
"size": 0,
29+
"mtime": "2017-07-31T22:21:58.000Z",
30+
"cksum": 11228,
31+
"linkpath": "",
32+
"uname": null,
33+
"gname": null,
34+
"devmaj": 0,
35+
"devmin": 0,
36+
"atime": null,
37+
"ctime": null
38+
}
39+
}
40+
],
41+
[
42+
"ignoredEntry",
43+
{
44+
"extended": null,
45+
"globalExtended": null,
46+
"type": "NextFileHasLongPath",
47+
"meta": true,
48+
"ignore": true,
49+
"path": "././@LongLink",
50+
"mode": 420,
51+
"uid": 0,
52+
"gid": 0,
53+
"uname": null,
54+
"gname": null,
55+
"size": 122,
56+
"mtime": "1970-01-01T00:00:00.000Z",
57+
"atime": null,
58+
"ctime": null,
59+
"linkpath": "",
60+
"header": {
61+
"cksumValid": true,
62+
"needPax": false,
63+
"path": "././@LongLink",
64+
"mode": 420,
65+
"uid": 0,
66+
"gid": 0,
67+
"size": 122,
68+
"mtime": "1970-01-01T00:00:00.000Z",
69+
"cksum": 4995,
70+
"linkpath": "",
71+
"uname": null,
72+
"gname": null,
73+
"devmaj": 0,
74+
"devmin": 0,
75+
"atime": null,
76+
"ctime": null
77+
}
78+
}
79+
],
80+
[
81+
"entry",
82+
{
83+
"extended": null,
84+
"globalExtended": null,
85+
"type": "File",
86+
"meta": false,
87+
"ignore": false,
88+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_",
89+
"mode": 436,
90+
"uid": 1000,
91+
"gid": 1000,
92+
"uname": null,
93+
"gname": null,
94+
"size": 200,
95+
"mtime": "2017-07-31T22:21:53.000Z",
96+
"atime": null,
97+
"ctime": null,
98+
"linkpath": "",
99+
"header": {
100+
"cksumValid": true,
101+
"needPax": false,
102+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_",
103+
"mode": 436,
104+
"uid": 1000,
105+
"gid": 1000,
106+
"size": 200,
107+
"mtime": "2017-07-31T22:21:53.000Z",
108+
"cksum": 15210,
109+
"linkpath": "",
110+
"uname": null,
111+
"gname": null,
112+
"devmaj": 0,
113+
"devmin": 0,
114+
"atime": null,
115+
"ctime": null
116+
}
117+
}
118+
],
119+
[
120+
"nullBlock"
121+
],
122+
[
123+
"nullBlock"
124+
],
125+
[
126+
"nullBlock"
127+
],
128+
[
129+
"nullBlock"
130+
],
131+
[
132+
"nullBlock"
133+
],
134+
[
135+
"nullBlock"
136+
],
137+
[
138+
"nullBlock"
139+
],
140+
[
141+
"nullBlock"
142+
],
143+
[
144+
"nullBlock"
145+
],
146+
[
147+
"nullBlock"
148+
],
149+
[
150+
"nullBlock"
151+
],
152+
[
153+
"nullBlock"
154+
],
155+
[
156+
"nullBlock"
157+
],
158+
[
159+
"nullBlock"
160+
],
161+
[
162+
"nullBlock"
163+
],
164+
[
165+
"end"
166+
]
167+
]
+134
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
[
2+
[
3+
"entry",
4+
{
5+
"extended": null,
6+
"globalExtended": null,
7+
"type": "Directory",
8+
"meta": false,
9+
"ignore": false,
10+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
11+
"mode": 509,
12+
"uid": 1000,
13+
"gid": 1000,
14+
"uname": null,
15+
"gname": null,
16+
"size": 0,
17+
"mtime": "2017-07-31T22:21:58.000Z",
18+
"atime": null,
19+
"ctime": null,
20+
"linkpath": "",
21+
"header": {
22+
"cksumValid": true,
23+
"needPax": false,
24+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
25+
"mode": 509,
26+
"uid": 1000,
27+
"gid": 1000,
28+
"size": 0,
29+
"mtime": "2017-07-31T22:21:58.000Z",
30+
"cksum": 11228,
31+
"linkpath": "",
32+
"uname": null,
33+
"gname": null,
34+
"devmaj": 0,
35+
"devmin": 0,
36+
"atime": null,
37+
"ctime": null
38+
}
39+
}
40+
],
41+
[
42+
"meta",
43+
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
44+
],
45+
[
46+
"entry",
47+
{
48+
"extended": {
49+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
50+
},
51+
"globalExtended": null,
52+
"type": "File",
53+
"meta": false,
54+
"ignore": false,
55+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
56+
"mode": 436,
57+
"uid": 1000,
58+
"gid": 1000,
59+
"uname": null,
60+
"gname": null,
61+
"size": 200,
62+
"mtime": "2017-07-31T22:21:53.000Z",
63+
"atime": null,
64+
"ctime": null,
65+
"linkpath": "",
66+
"header": {
67+
"cksumValid": true,
68+
"needPax": false,
69+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_",
70+
"mode": 436,
71+
"uid": 1000,
72+
"gid": 1000,
73+
"size": 200,
74+
"mtime": "2017-07-31T22:21:53.000Z",
75+
"cksum": 15210,
76+
"linkpath": "",
77+
"uname": null,
78+
"gname": null,
79+
"devmaj": 0,
80+
"devmin": 0,
81+
"atime": null,
82+
"ctime": null
83+
}
84+
}
85+
],
86+
[
87+
"nullBlock"
88+
],
89+
[
90+
"nullBlock"
91+
],
92+
[
93+
"nullBlock"
94+
],
95+
[
96+
"nullBlock"
97+
],
98+
[
99+
"nullBlock"
100+
],
101+
[
102+
"nullBlock"
103+
],
104+
[
105+
"nullBlock"
106+
],
107+
[
108+
"nullBlock"
109+
],
110+
[
111+
"nullBlock"
112+
],
113+
[
114+
"nullBlock"
115+
],
116+
[
117+
"nullBlock"
118+
],
119+
[
120+
"nullBlock"
121+
],
122+
[
123+
"nullBlock"
124+
],
125+
[
126+
"nullBlock"
127+
],
128+
[
129+
"nullBlock"
130+
],
131+
[
132+
"end"
133+
]
134+
]

‎test/fixtures/parse/null-byte.json

+134
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
[
2+
[
3+
"entry",
4+
{
5+
"extended": null,
6+
"globalExtended": null,
7+
"type": "Directory",
8+
"meta": false,
9+
"ignore": false,
10+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
11+
"mode": 509,
12+
"uid": 1000,
13+
"gid": 1000,
14+
"uname": null,
15+
"gname": null,
16+
"size": 0,
17+
"mtime": "2017-07-31T22:21:58.000Z",
18+
"atime": null,
19+
"ctime": null,
20+
"linkpath": "",
21+
"header": {
22+
"cksumValid": true,
23+
"needPax": false,
24+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/",
25+
"mode": 509,
26+
"uid": 1000,
27+
"gid": 1000,
28+
"size": 0,
29+
"mtime": "2017-07-31T22:21:58.000Z",
30+
"cksum": 11228,
31+
"linkpath": "",
32+
"uname": null,
33+
"gname": null,
34+
"devmaj": 0,
35+
"devmin": 0,
36+
"atime": null,
37+
"ctime": null
38+
}
39+
}
40+
],
41+
[
42+
"meta",
43+
"this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz\u0000"
44+
],
45+
[
46+
"entry",
47+
{
48+
"extended": {
49+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz"
50+
},
51+
"globalExtended": null,
52+
"type": "File",
53+
"meta": false,
54+
"ignore": false,
55+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_lot_of_characters.tgz",
56+
"mode": 436,
57+
"uid": 1000,
58+
"gid": 1000,
59+
"uname": null,
60+
"gname": null,
61+
"size": 200,
62+
"mtime": "2017-07-31T22:21:53.000Z",
63+
"atime": null,
64+
"ctime": null,
65+
"linkpath": "",
66+
"header": {
67+
"cksumValid": true,
68+
"needPax": false,
69+
"path": "this_is_a_really_long_directory_name_with_a_lot_of_characters/this_is_a_really_long_tgz_file_with_a_",
70+
"mode": 436,
71+
"uid": 1000,
72+
"gid": 1000,
73+
"size": 200,
74+
"mtime": "2017-07-31T22:21:53.000Z",
75+
"cksum": 15210,
76+
"linkpath": "",
77+
"uname": null,
78+
"gname": null,
79+
"devmaj": 0,
80+
"devmin": 0,
81+
"atime": null,
82+
"ctime": null
83+
}
84+
}
85+
],
86+
[
87+
"nullBlock"
88+
],
89+
[
90+
"nullBlock"
91+
],
92+
[
93+
"nullBlock"
94+
],
95+
[
96+
"nullBlock"
97+
],
98+
[
99+
"nullBlock"
100+
],
101+
[
102+
"nullBlock"
103+
],
104+
[
105+
"nullBlock"
106+
],
107+
[
108+
"nullBlock"
109+
],
110+
[
111+
"nullBlock"
112+
],
113+
[
114+
"nullBlock"
115+
],
116+
[
117+
"nullBlock"
118+
],
119+
[
120+
"nullBlock"
121+
],
122+
[
123+
"nullBlock"
124+
],
125+
[
126+
"nullBlock"
127+
],
128+
[
129+
"nullBlock"
130+
],
131+
[
132+
"end"
133+
]
134+
]

‎test/fixtures/parses.tar

-33 KB
Binary file not shown.

‎test/fixtures/tars/null-byte.tar

10 KB
Binary file not shown.

0 commit comments

Comments
 (0)
Please sign in to comment.