Linux tsuru-no-tsurugi 5.15.0-186-generic #196-Ubuntu SMP Sat Jun 20 16:09:34 UTC 2026 x86_64
Apache/2.4.52 (Ubuntu)
Server IP : 192.168.0.18 & Your IP : 216.73.216.68
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
node_modules /
npm /
node_modules /
tar /
lib /
Delete
Unzip
Name
Size
Permission
Date
Action
create.js
2.34
KB
-rw-r--r--
2023-01-06 19:00
extract.js
2.79
KB
-rw-r--r--
2023-01-06 19:00
get-write-flag.js
921
B
-rw-r--r--
2022-10-11 19:59
header.js
8.94
KB
-rw-r--r--
2023-01-06 19:00
high-level-opt.js
760
B
-rw-r--r--
2022-10-11 19:59
large-numbers.js
2.18
KB
-rw-r--r--
2023-01-06 19:00
list.js
3.15
KB
-rw-r--r--
2023-01-06 19:00
mkdir.js
5.36
KB
-rw-r--r--
2023-01-06 19:00
mode-fix.js
649
B
-rw-r--r--
2023-01-06 19:00
normalize-unicode.js
412
B
-rw-r--r--
2023-08-09 09:23
normalize-windows-path.js
410
B
-rw-r--r--
2022-10-11 19:59
pack.js
9.79
KB
-rw-r--r--
2023-10-14 15:00
parse.js
15.94
KB
-rw-r--r--
2023-10-14 15:00
path-reservations.js
4.31
KB
-rw-r--r--
2023-08-09 09:23
pax.js
3.97
KB
-rw-r--r--
2023-01-06 19:00
read-entry.js
2.78
KB
-rw-r--r--
2023-06-20 15:00
replace.js
5.64
KB
-rw-r--r--
2023-10-14 15:00
strip-absolute-path.js
917
B
-rw-r--r--
2023-01-06 19:00
strip-trailing-slashes.js
394
B
-rw-r--r--
2022-10-11 19:59
types.js
1.07
KB
-rw-r--r--
2022-10-11 19:59
unpack.js
25.23
KB
-rw-r--r--
2024-04-25 19:00
update.js
937
B
-rw-r--r--
2023-10-14 15:00
warn-mixin.js
725
B
-rw-r--r--
2023-01-06 19:00
winchars.js
535
B
-rw-r--r--
2022-10-11 19:59
write-entry.js
14.94
KB
-rw-r--r--
2023-06-20 15:00
Save
Rename
'use strict' const { Minipass } = require('minipass') const normPath = require('./normalize-windows-path.js') const SLURP = Symbol('slurp') module.exports = class ReadEntry extends Minipass { constructor (header, ex, gex) { super() // read entries always start life paused. this is to avoid the // situation where Minipass's auto-ending empty streams results // in an entry ending before we're ready for it. this.pause() this.extended = ex this.globalExtended = gex this.header = header this.startBlockSize = 512 * Math.ceil(header.size / 512) this.blockRemain = this.startBlockSize this.remain = header.size this.type = header.type this.meta = false this.ignore = false switch (this.type) { case 'File': case 'OldFile': case 'Link': case 'SymbolicLink': case 'CharacterDevice': case 'BlockDevice': case 'Directory': case 'FIFO': case 'ContiguousFile': case 'GNUDumpDir': break case 'NextFileHasLongLinkpath': case 'NextFileHasLongPath': case 'OldGnuLongPath': case 'GlobalExtendedHeader': case 'ExtendedHeader': case 'OldExtendedHeader': this.meta = true break // NOTE: gnutar and bsdtar treat unrecognized types as 'File' // it may be worth doing the same, but with a warning. default: this.ignore = true } this.path = normPath(header.path) this.mode = header.mode if (this.mode) { this.mode = this.mode & 0o7777 } this.uid = header.uid this.gid = header.gid this.uname = header.uname this.gname = header.gname this.size = header.size this.mtime = header.mtime this.atime = header.atime this.ctime = header.ctime this.linkpath = normPath(header.linkpath) this.uname = header.uname this.gname = header.gname if (ex) { this[SLURP](ex) } if (gex) { this[SLURP](gex, true) } } write (data) { const writeLen = data.length if (writeLen > this.blockRemain) { throw new Error('writing more to entry than is appropriate') } const r = this.remain const br = this.blockRemain this.remain = Math.max(0, r - writeLen) this.blockRemain = Math.max(0, br - writeLen) if (this.ignore) { return true } if (r >= writeLen) { return super.write(data) } // r < writeLen return super.write(data.slice(0, r)) } [SLURP] (ex, global) { for (const k in ex) { // we slurp in everything except for the path attribute in // a global extended header, because that's weird. if (ex[k] !== null && ex[k] !== undefined && !(global && k === 'path')) { this[k] = k === 'path' || k === 'linkpath' ? normPath(ex[k]) : ex[k] } } } }