BLUE
PHP 7.4.33
Path:
/var/www/sitesecurity.bitkit.dk/httpdocs/node_modules/detect-libc/lib
Run
Logout
Edit File
Size: 2.13 KB
Close
/var/www/sitesecurity.bitkit.dk/httpdocs/node_modules/detect-libc/lib/detect-libc.js
Text
Base64
'use strict'; var platform = require('os').platform(); var spawnSync = require('child_process').spawnSync; var readdirSync = require('fs').readdirSync; var GLIBC = 'glibc'; var MUSL = 'musl'; var spawnOptions = { encoding: 'utf8', env: process.env }; if (!spawnSync) { spawnSync = function () { return { status: 126, stdout: '', stderr: '' }; }; } function contains (needle) { return function (haystack) { return haystack.indexOf(needle) !== -1; }; } function versionFromMuslLdd (out) { return out.split(/[\r\n]+/)[1].trim().split(/\s/)[1]; } function safeReaddirSync (path) { try { return readdirSync(path); } catch (e) {} return []; } var family = ''; var version = ''; var method = ''; if (platform === 'linux') { // Try getconf var glibc = spawnSync('getconf', ['GNU_LIBC_VERSION'], spawnOptions); if (glibc.status === 0) { family = GLIBC; version = glibc.stdout.trim().split(' ')[1]; method = 'getconf'; } else { // Try ldd var ldd = spawnSync('ldd', ['--version'], spawnOptions); if (ldd.status === 0 && ldd.stdout.indexOf(MUSL) !== -1) { family = MUSL; version = versionFromMuslLdd(ldd.stdout); method = 'ldd'; } else if (ldd.status === 1 && ldd.stderr.indexOf(MUSL) !== -1) { family = MUSL; version = versionFromMuslLdd(ldd.stderr); method = 'ldd'; } else { // Try filesystem (family only) var lib = safeReaddirSync('/lib'); if (lib.some(contains('-linux-gnu'))) { family = GLIBC; method = 'filesystem'; } else if (lib.some(contains('libc.musl-'))) { family = MUSL; method = 'filesystem'; } else if (lib.some(contains('ld-musl-'))) { family = MUSL; method = 'filesystem'; } else { var usrSbin = safeReaddirSync('/usr/sbin'); if (usrSbin.some(contains('glibc'))) { family = GLIBC; method = 'filesystem'; } } } } } var isNonGlibcLinux = (family !== '' && family !== GLIBC); module.exports = { GLIBC: GLIBC, MUSL: MUSL, family: family, version: version, method: method, isNonGlibcLinux: isNonGlibcLinux };
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 1
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
detect-libc.js
2.13 KB
lrw-r--r--
2026-04-28 09:11:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).