reverted Object.freeze because it broke some projects
This commit is contained in:
parent
bd5b8abab6
commit
a451b22f11
@ -30,6 +30,7 @@ For major (breaking) changes - version 3 and 2 see end of page.
|
|||||||
|
|
||||||
| Version | Date | Comment |
|
| Version | Date | Comment |
|
||||||
| -------------- | -------------- | -------- |
|
| -------------- | -------------- | -------- |
|
||||||
|
| 4.30.4 | 2020-11-25 | reverted Object.freeze because it broke some projects |
|
||||||
| 4.30.3 | 2020-11-25 | security update (prototype pollution prevention) Object.freeze |
|
| 4.30.3 | 2020-11-25 | security update (prototype pollution prevention) Object.freeze |
|
||||||
| 4.30.2 | 2020-11-25 | security update (prototype pollution prevention) |
|
| 4.30.2 | 2020-11-25 | security update (prototype pollution prevention) |
|
||||||
| 4.30.1 | 2020-11-12 | updated docs |
|
| 4.30.1 | 2020-11-12 | updated docs |
|
||||||
|
|||||||
@ -83,6 +83,11 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">4.30.4</th>
|
||||||
|
<td>2020-11-25</td>
|
||||||
|
<td>reverted Object.freeze because it broke some projects</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">4.30.3</th>
|
<th scope="row">4.30.3</th>
|
||||||
<td>2020-11-25</td>
|
<td>2020-11-25</td>
|
||||||
|
|||||||
@ -168,7 +168,7 @@
|
|||||||
<img class="logo" src="assets/logo.png">
|
<img class="logo" src="assets/logo.png">
|
||||||
<div class="title">systeminformation</div>
|
<div class="title">systeminformation</div>
|
||||||
<div class="subtitle"><span id="typed"></span></div>
|
<div class="subtitle"><span id="typed"></span></div>
|
||||||
<div class="version">Current Version: <span id="version">4.30.3</span></div>
|
<div class="version">Current Version: <span id="version">4.30.4</span></div>
|
||||||
<button class="btn btn-light" onclick="location.href='https://github.com/sebhildebrandt/systeminformation'">View on Github <i class=" fab fa-github"></i></button>
|
<button class="btn btn-light" onclick="location.href='https://github.com/sebhildebrandt/systeminformation'">View on Github <i class=" fab fa-github"></i></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="down">
|
<div class="down">
|
||||||
|
|||||||
@ -21,8 +21,8 @@
|
|||||||
// Dependencies
|
// Dependencies
|
||||||
// ----------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------
|
||||||
|
|
||||||
Object.freeze(String.prototype);
|
// Object.freeze(String.prototype);
|
||||||
Object.freeze(Object.prototype);
|
// Object.freeze(Object.prototype);
|
||||||
|
|
||||||
const lib_version = require('../package.json').version;
|
const lib_version = require('../package.json').version;
|
||||||
const util = require('./util');
|
const util = require('./util');
|
||||||
|
|||||||
@ -52,52 +52,57 @@ function inetChecksite(url, callback) {
|
|||||||
status: 404,
|
status: 404,
|
||||||
ms: -1
|
ms: -1
|
||||||
};
|
};
|
||||||
if (urlSanitized && !util.isPrototypePolluted()) {
|
try {
|
||||||
let t = Date.now();
|
if (urlSanitized && !util.isPrototypePolluted()) {
|
||||||
if (_linux || _freebsd || _openbsd || _netbsd || _darwin || _sunos) {
|
let t = Date.now();
|
||||||
let args = ' -I --connect-timeout 5 -m 5 ' + urlSanitized + ' 2>/dev/null | head -n 1 | cut -d " " -f2';
|
if (_linux || _freebsd || _openbsd || _netbsd || _darwin || _sunos) {
|
||||||
let cmd = 'curl';
|
let args = ' -I --connect-timeout 5 -m 5 ' + urlSanitized + ' 2>/dev/null | head -n 1 | cut -d " " -f2';
|
||||||
exec(cmd + args, function (error, stdout) {
|
let cmd = 'curl';
|
||||||
let statusCode = parseInt(stdout.toString());
|
exec(cmd + args, function (error, stdout) {
|
||||||
result.status = statusCode || 404;
|
let statusCode = parseInt(stdout.toString());
|
||||||
result.ok = !error && (statusCode === 200 || statusCode === 301 || statusCode === 302 || statusCode === 304);
|
|
||||||
result.ms = (result.ok ? Date.now() - t : -1);
|
|
||||||
if (callback) { callback(result); }
|
|
||||||
resolve(result);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (_windows) { // if this is stable, this can be used for all OS types
|
|
||||||
const http = (urlSanitized.startsWith('https:') ? require('https') : require('http'));
|
|
||||||
try {
|
|
||||||
http.get(urlSanitized, (res) => {
|
|
||||||
const statusCode = res.statusCode;
|
|
||||||
|
|
||||||
result.status = statusCode || 404;
|
result.status = statusCode || 404;
|
||||||
result.ok = (statusCode === 200 || statusCode === 301 || statusCode === 302 || statusCode === 304);
|
result.ok = !error && (statusCode === 200 || statusCode === 301 || statusCode === 302 || statusCode === 304);
|
||||||
|
result.ms = (result.ok ? Date.now() - t : -1);
|
||||||
if (statusCode !== 200) {
|
|
||||||
res.resume();
|
|
||||||
result.ms = (result.ok ? Date.now() - t : -1);
|
|
||||||
if (callback) { callback(result); }
|
|
||||||
resolve(result);
|
|
||||||
} else {
|
|
||||||
res.on('data', () => { });
|
|
||||||
res.on('end', () => {
|
|
||||||
result.ms = (result.ok ? Date.now() - t : -1);
|
|
||||||
if (callback) { callback(result); }
|
|
||||||
resolve(result);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}).on('error', () => {
|
|
||||||
if (callback) { callback(result); }
|
if (callback) { callback(result); }
|
||||||
resolve(result);
|
resolve(result);
|
||||||
});
|
});
|
||||||
} catch (err) {
|
|
||||||
if (callback) { callback(result); }
|
|
||||||
resolve(result);
|
|
||||||
}
|
}
|
||||||
|
if (_windows) { // if this is stable, this can be used for all OS types
|
||||||
|
const http = (urlSanitized.startsWith('https:') ? require('https') : require('http'));
|
||||||
|
try {
|
||||||
|
http.get(urlSanitized, (res) => {
|
||||||
|
const statusCode = res.statusCode;
|
||||||
|
|
||||||
|
result.status = statusCode || 404;
|
||||||
|
result.ok = (statusCode === 200 || statusCode === 301 || statusCode === 302 || statusCode === 304);
|
||||||
|
|
||||||
|
if (statusCode !== 200) {
|
||||||
|
res.resume();
|
||||||
|
result.ms = (result.ok ? Date.now() - t : -1);
|
||||||
|
if (callback) { callback(result); }
|
||||||
|
resolve(result);
|
||||||
|
} else {
|
||||||
|
res.on('data', () => { });
|
||||||
|
res.on('end', () => {
|
||||||
|
result.ms = (result.ok ? Date.now() - t : -1);
|
||||||
|
if (callback) { callback(result); }
|
||||||
|
resolve(result);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}).on('error', () => {
|
||||||
|
if (callback) { callback(result); }
|
||||||
|
resolve(result);
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
if (callback) { callback(result); }
|
||||||
|
resolve(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (callback) { callback(result); }
|
||||||
|
resolve(result);
|
||||||
}
|
}
|
||||||
} else {
|
} catch (err) {
|
||||||
if (callback) { callback(result); }
|
if (callback) { callback(result); }
|
||||||
resolve(result);
|
resolve(result);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -527,7 +527,6 @@ function isPrototypePolluted() {
|
|||||||
const ms = Date.now();
|
const ms = Date.now();
|
||||||
if (typeof ms === 'number' && ms > 1600000000000) {
|
if (typeof ms === 'number' && ms > 1600000000000) {
|
||||||
const l = ms % 100 + 15;
|
const l = ms % 100 + 15;
|
||||||
let c = 0;
|
|
||||||
for (let i = 0; i < l; i++) {
|
for (let i = 0; i < l; i++) {
|
||||||
const r = Math.random() * 61.99999999 + 1;
|
const r = Math.random() * 61.99999999 + 1;
|
||||||
const rs = parseInt(Math.floor(r).toString(), 10)
|
const rs = parseInt(Math.floor(r).toString(), 10)
|
||||||
@ -563,7 +562,7 @@ function isPrototypePolluted() {
|
|||||||
notPolluted = notPolluted && (stl.length === l) && stl[l - 1] && !(stl[l])
|
notPolluted = notPolluted && (stl.length === l) && stl[l - 1] && !(stl[l])
|
||||||
for (let i = 0; i < l; i++) {
|
for (let i = 0; i < l; i++) {
|
||||||
const s1 = st[i];
|
const s1 = st[i];
|
||||||
const s2 = stl[i];
|
const s2 = stl ? stl[i] : '';
|
||||||
const s1l = s1.toLowerCase();
|
const s1l = s1.toLowerCase();
|
||||||
notPolluted = notPolluted && s1l[0] === s2 && s1l[0] && !(s1l[1]);
|
notPolluted = notPolluted && s1l[0] === s2 && s1l[0] && !(s1l[1]);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user