diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ad1b1c..c3a4e4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -77,6 +77,14 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page. | Version | Date | Comment | | -------------- | -------------- | -------- | +| 5.6.10 | 2021-03-29 | `vboxInfo()` fixed windows bug | +| 5.6.9 | 2021-03-28 | `graphics()` fixed nvidia-smi compare bug | +| 5.6.8 | 2021-03-22 | typescript definitions fix `wifiInterfces()`, `wifiConnections()` | +| 5.6.7 | 2021-03-16 | `inetLatency()` `ineChecksite()` schema validation | +| 5.6.6 | 2021-03-16 | code refactoring | +| 5.6.5 | 2021-03-15 | `cpuTemperature()` fix (linux) | +| 5.6.4 | 2021-03-15 | `sanitizeShellString()` and other security improvements | +| 5.6.3 | 2021-03-14 | `sanitizeShellString()` improvement | | 5.6.2 | 2021-03-10 | `networkInterfaces()` `cpu()` improvement (win) | | 5.6.1 | 2021-03-03 | `get()` fixed issue boolean parameters | | 5.6.0 | 2021-03-03 | `cpuTemperature()` added socket and chipset temp (linux) | diff --git a/README.md b/README.md index 8fad89e..03b938d 100644 --- a/README.md +++ b/README.md @@ -360,9 +360,9 @@ Full function reference with examples can be found at [https://systeminformation | si.fullLoad(cb) | : integer | X | | X | X | | CPU full load since bootup in % | | si.processes(cb) | {...} | X | X | X | X | X | # running processes | | | all | X | X | X | X | X | # of all processes | -| | running | X | X | X | X | X | # of all processes running | -| | blocked | X | X | X | X | X | # of all processes blocked | -| | sleeping | X | X | X | X | X | # of all processes sleeping | +| | running | X | X | X | | X | # of all processes running | +| | blocked | X | X | X | | X | # of all processes blocked | +| | sleeping | X | X | X | | X | # of all processes sleeping | | | unknown | | | | X | | # of all processes unknown status | | | list[] | X | X | X | X | X | list of all processes incl. details | | | ...[0].pid | X | X | X | X | X | process PID | diff --git a/docs/history.html b/docs/history.html index ddeb8cd..3832da3 100644 --- a/docs/history.html +++ b/docs/history.html @@ -56,6 +56,46 @@ + + 5.6.10 + 2021-03-29 + vboxInfo() fixed windows bug + + + 5.6.9 + 2021-03-28 + graphics() fixed nvidia-smi compare bug + + + 5.6.8 + 2021-03-23 + typescript definitions fix wifiInterfces, wifiConnections + + + 5.6.7 + 2021-03-16 + inetLatency() inetChecksite() schema avlidation + + + 5.6.6 + 2021-03-16 + code refactoring + + + 5.6.5 + 2021-03-15 + cpuTemperature() fix linux + + + 5.6.4 + 2021-03-15 + sanitizeShellString() and other security improvements + + + 5.6.3 + 2021-03-14 + sanitizeShellString() improvements + 5.6.2 2021-03-10 diff --git a/docs/index.html b/docs/index.html index 0965949..3676089 100644 --- a/docs/index.html +++ b/docs/index.html @@ -166,11 +166,11 @@
- Security advisory:
Update to v5.3.2
+ Security advisory:
Update to v5.6.4
systeminformation
 
-
New Version: 5.6.2
+
New Version: 5.6.10
@@ -192,6 +192,8 @@ Total alerts MIT license
+
Security issues: Please have a look at our security advisories.
+
@@ -201,7 +203,7 @@
-
14,185
+
14,225
Lines of code
@@ -209,7 +211,7 @@
Downloads last month
-
395
+
407
Dependents
@@ -345,7 +347,7 @@
Issues
-
Security issues: Please have a look at our security advisories
+
Security issues: We highly recomment to have a look at our security advisories
Having an issue: If you run into problems, please check out known issues page first.
If you still have problems, please feel free to open an issue on our github page
diff --git a/docs/processes.html b/docs/processes.html index ec047c3..9ed7ef8 100644 --- a/docs/processes.html +++ b/docs/processes.html @@ -242,7 +242,7 @@ si.currentLoad().then(data => console.log(data)); X X X - X + X # of all processes running @@ -252,7 +252,7 @@ si.currentLoad().then(data => console.log(data)); X X X - X + X # of all processes blocked @@ -262,7 +262,7 @@ si.currentLoad().then(data => console.log(data)); X X X - X + X # of all processes sleeping diff --git a/docs/security.html b/docs/security.html index 16637dc..a462e72 100644 --- a/docs/security.html +++ b/docs/security.html @@ -43,6 +43,28 @@
Security Advisories
+

Passing User Paramters to Systeminformation

+

For most of the applications that are using systeminformation, there is no reason to worry. But be aware! If you are using inetLatency(), inetChecksite(), services(), processLoad() with arbitrary untrusted user input, you should pay extra attention! We are doing a lot of input sanitation for those functions inside this package but we cannot handle all cases!

+

This can lead to serious impact on your servers!

+

We highly recommend to always upgrade to the latest version of our package. We maintain security updates for version 5 AND also version 4. For version 4 you can install latest version by placing "systeminformation": "^4" in your package.json (dependencies) and run npm install

+ +

Command Injection Vulnerability

+

Affected versions: + < 5.6.4 and < 4.34.17
+ Date: 2021-03-15
+ CVE indentifier CVE-2021-21388 +

+ +

Impact

+

We had an issue that there was a possibility to perform a potential command injection possibility by passing a manipulated string prototype as a parameter to the following functions. Affected commands: inetLatency(), inetChecksite(), services(), processLoad().

+ +

Patch

+

Problem was fixed with additional parameter checking. Please upgrade to version >= 5.6.4 (or >= 4.34.17 if you are using version 4).

+ +

Workarround

+

If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to inetLatency(), inetChecksite(), services(), processLoad() (string only)

+
+

Insufficient File Scheme Validation

Affected versions: < 5.3.2 and < 4.34.12
diff --git a/docs/styles.css b/docs/styles.css index af748b0..cf001bb 100644 --- a/docs/styles.css +++ b/docs/styles.css @@ -1,11 +1,11 @@ body { - font-family: 'Roboto', 'HelveticaNeue-Light','Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,sans-serif; + font-family: "Roboto", "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: 300; min-height: 100%; } h1, h2, h3, h4 { - font-family: 'Roboto', 'HelveticaNeue-Light','Helvetica Neue Light','Helvetica Neue',Helvetica,Arial,sans-serif; + font-family: "Roboto", "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: 500; color: #3d5cb3; } @@ -18,6 +18,16 @@ h1, h2, h3, h4 { font-weight: 500; } +.warning { + font-weight: 500; + color: #9c0101; +} + +.larger { + margin-top: 10px; + font-size: 1.5rem !important; +} + .medium { font-weight: 500; } @@ -40,45 +50,24 @@ h1, h2, h3, h4 { height: 100vh; height: calc(var(--vh, 1vh) * 100); opacity: 0.95; - display: -webkit-box; - display: -ms-flexbox; display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; + justify-content: center; text-align: center; width: 100% !important; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; + flex-direction: column; } - .bg-image-full .top-container { text-align: center; - -ms-flex-item-align: center; - align-self: center; - display: -webkit-box; - display: -ms-flexbox; + align-self: center; display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; + justify-content: center; + flex-direction: column; + align-items: center; + flex-grow: 1; overflow: hidden; position: relative; width: 100% !important; } - .bg-image-full .recommendation { position: absolute; top: 30px; @@ -88,20 +77,17 @@ h1, h2, h3, h4 { display: inline-block; width: 280px; text-align: center; - padding: .25em 0; + padding: 0.25em 0; color: white; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); + transform: rotate(45deg); background: #971d1d; font-size: 0.9rem; } - @media only screen and (min-width: 420px) { .bg-image-full .recommendation { - font-size: 1.0rem; + font-size: 1rem; } } - @media only screen and (min-width: 767px) { .bg-image-full .recommendation { font-size: 1.1rem; @@ -110,7 +96,6 @@ h1, h2, h3, h4 { width: 330px; } } - @media only screen and (min-width: 1024px) { .bg-image-full .recommendation { width: 330px; @@ -120,11 +105,9 @@ h1, h2, h3, h4 { font-size: 1.2rem; } } - .bg-image-full .recommendation:hover { text-decoration: none; } - .bg-image-full .title { color: #fff; padding-top: 10px; @@ -132,197 +115,164 @@ h1, h2, h3, h4 { margin-bottom: 10px; font-weight: 500; } - @media only screen and (min-width: 374px) { .bg-image-full .title { font-size: 2.1rem; } } - @media only screen and (min-width: 420px) { .bg-image-full .title { font-size: 2.4rem; } } - @media only screen and (min-width: 767px) { .bg-image-full .title { font-size: 3.5rem; } } - @media only screen and (min-width: 1024px) { .bg-image-full .title { font-size: 4rem; } } - @media only screen and (min-width: 1200px) { .bg-image-full .title { font-size: 5rem; } } - @media only screen and (min-width: 1900px) { .bg-image-full .title { font-size: 6rem; } } - .bg-image-full .logo { width: 100px; } - @media only screen and (min-width: 420px) { .bg-image-full .logo { width: 120px; } } - @media only screen and (min-width: 767px) { .bg-image-full .logo { width: 160px; } } - @media only screen and (min-width: 1024px) { .bg-image-full .logo { width: 200px; } } - @media only screen and (min-width: 1900px) { .bg-image-full .logo { width: 250px; } } - .bg-image-full .subtitle { text-align: center; color: #bbb; font-size: 0.78rem; } - @media only screen and (min-width: 375px) { .bg-image-full .subtitle { font-size: 0.9rem; } } - @media only screen and (min-width: 420px) { .bg-image-full .subtitle { font-size: 1rem; } } - @media only screen and (min-width: 767px) { .bg-image-full .subtitle { font-size: 1.1rem; } } - @media only screen and (min-width: 1024px) { .bg-image-full .subtitle { font-size: 1.3rem; } } - @media only screen and (min-width: 1200px) { .bg-image-full .subtitle { font-size: 1.4rem; } } - @media only screen and (min-width: 1900px) { .bg-image-full .subtitle { font-size: 1.6rem; } } - .bg-image-full .text > a { text-align: center; color: #fff; font-size: 0.9rem; } - .bg-image-full .text > a:hover { color: #aaa; text-decoration: none; } - @media only screen and (min-width: 375px) { .bg-image-full .text > a { font-size: 0.9rem; } } - @media only screen and (min-width: 420px) { .bg-image-full .text > a { font-size: 1rem; } } - @media only screen and (min-width: 767px) { .bg-image-full .text > a { font-size: 1rem; } } - @media only screen and (min-width: 1024px) { .bg-image-full .text > a { font-size: 1.1rem; } } - @media only screen and (min-width: 1200px) { .bg-image-full .text > a { font-size: 1.2rem; } } - @media only screen and (min-width: 1900px) { .bg-image-full .text > a { font-size: 1.5rem; } } - .bg-image-full .version { text-align: center; margin-bottom: 10px; color: #fff; - font-size: .9rem; + font-size: 0.9rem; } - @media only screen and (min-width: 420px) { .bg-image-full .version { - font-size: .9rem; + font-size: 0.9rem; } } - @media only screen and (min-width: 768px) { .bg-image-full .version { font-size: 1rem; } } - @media only screen and (min-width: 1024px) { .bg-image-full .version { font-size: 1.1rem; } } - @media only screen and (min-width: 1200px) { .bg-image-full .version { font-size: 1.2rem; } } - @media only screen and (min-width: 1900px) { .bg-image-full .version { font-size: 1.5rem; } } - .bg-image-full .down { text-align: center; color: #fff; @@ -331,7 +281,6 @@ h1, h2, h3, h4 { margin-bottom: 15px; cursor: pointer; } - .bg-image-full .down .caret { font-size: 3rem; } @@ -347,12 +296,10 @@ h1, h2, h3, h4 { height: 65px; position: relative; } - .nav .logo { width: 60px; margin-top: 12px; } - .nav .title { display: none; color: #fff; @@ -361,55 +308,45 @@ h1, h2, h3, h4 { margin-top: 15px; font-weight: 500; } - @media only screen and (min-width: 767px) { .nav .title { display: inline-block; } } - @media only screen and (min-width: 1024px) { .nav .title { font-size: 1.5rem; } } - .nav .text { margin-top: 18px; } - .nav .text a { color: #fff; margin-top: 12px; - font-size: 1.0rem; + font-size: 1rem; } - @media only screen and (min-width: 1023px) { .nav .text a { margin-top: 10px; font-size: 1.2rem; } } - .nav .text a:hover { color: #aaa; text-decoration: none; } - .nav .github { display: none; } - @media only screen and (min-width: 768px) { .nav .github { display: inline-block; } } - .nav .todocs { display: inline-block; } - @media only screen and (min-width: 768px) { .nav .todocs { display: none; @@ -420,51 +357,42 @@ h1, h2, h3, h4 { text-align: center; color: #333; } - .features .inner { padding: 10px 0px; } - @media only screen and (min-width: 768px) { .features .inner { padding: 15px 20px; } } - .features .inner .icons { display: block; font-size: 3rem; line-height: 1.3; color: #bbb; } - @media only screen and (min-width: 420px) { .features .inner .icons { font-size: 3.5rem; } } - @media only screen and (min-width: 768px) { .features .inner .icons { font-size: 4rem; } } - @media only screen and (min-width: 1024px) { .features .inner .icons { font-size: 5rem; } } - .features .inner .icontitle { font-size: 1.2rem; } - .features .inner:hover { background: #f4f4f4; color: #567adf; } - .features .inner:hover .icons { color: #567adf; } @@ -476,13 +404,11 @@ h1, h2, h3, h4 { font-weight: 500; color: #3d5cb3; } - @media only screen and (min-width: 420px) { .sectionheader .title { font-size: 2.3rem; } } - @media only screen and (min-width: 768px) { .sectionheader .title { text-align: left; @@ -490,27 +416,23 @@ h1, h2, h3, h4 { font-size: 2.6rem; } } - @media only screen and (min-width: 1024px) { .sectionheader .title { padding-top: 40px; font-size: 3rem; } } - .sectionheader .title-small { text-align: center; font-size: 1.4rem; font-weight: 500; color: #3d5cb3; } - @media only screen and (min-width: 420px) { .sectionheader .title-small { font-size: 1.6rem; } } - @media only screen and (min-width: 768px) { .sectionheader .title-small { text-align: left; @@ -518,53 +440,44 @@ h1, h2, h3, h4 { font-size: 1.8rem; } } - @media only screen and (min-width: 1024px) { .sectionheader .title-small { padding-top: 30px; font-size: 2rem; } } - .sectionheader .subtitle { text-align: center; - font-size: .9rem; + font-size: 0.9rem; } - @media only screen and (min-width: 420px) { .sectionheader .subtitle { font-size: 1rem; } } - @media only screen and (min-width: 768px) { .sectionheader .subtitle { text-align: left; font-size: 1.1rem; } } - @media only screen and (min-width: 1024px) { .sectionheader .subtitle { font-size: 1.3rem; } } - .sectionheader .npmicons { text-align: center; } - .sectionheader .text { text-align: center; padding-top: 10px; } - @media only screen and (min-width: 768px) { .sectionheader .text { text-align: left; } } - .sectionheader hr { margin-top: 40px; margin-bottom: 0px; @@ -574,19 +487,15 @@ h1, h2, h3, h4 { .index { margin: 0 0 10px 0; } - .index .text, .index .subtitle, .index .title, .index .title-small, .index .npmicons { text-align: center; } - .index .larger { font-size: 1.2rem; } - .index a { text-decoration: none; } - .index a:hover { text-decoration: none; color: #567adf; @@ -608,34 +517,28 @@ ul { margin-top: 40px; text-align: center; } - .number-section .numbers { font-size: 2rem; } - @media only screen and (min-width: 420px) { .number-section .numbers { font-size: 2.4rem; } } - @media only screen and (min-width: 768px) { .number-section .numbers { font-size: 2.8rem; } } - .number-section .title { color: #999; font-size: 1rem; } - @media only screen and (min-width: 420px) { .number-section .title { font-size: 1.1rem; } } - @media only screen and (min-width: 768px) { .number-section .title { font-size: 1.2rem; @@ -645,60 +548,49 @@ ul { .menu { display: none; } - @media only screen and (min-width: 768px) { .menu { margin-top: 30px; display: inline-block; } } - .menu .title { margin: 25px 0 5px 0; color: #000; } - .menu .title a { width: 100%; color: #000; text-decoration: none; } - .menu .title a:hover { color: #567adf; } - .menu .title .navtitle { font-size: 1.3rem; margin-bottom: 5px; display: inline-block; color: #3d5cb3; } - .menu hr { margin: 5px 0; } - .menu ul { list-style-type: none; margin: 0; padding: 0; } - .menu ul li { padding: 2px 0 1px 0; } - .menu ul li a { width: 100%; color: #666; text-decoration: none; } - .menu ul li a:hover { color: #567adf; } - .menu ul li.active > a { color: #567adf; font-weight: 500; @@ -734,20 +626,16 @@ pre { .example td:first-child { background-color: #fff !important; } - .example td:last-child { background-color: #f8faff !important; } - .example h5 { padding-top: 5px; padding-left: 10px; } - .example pre { background-color: unset; } - .example pre .js { background-color: #f0f0f4; } @@ -759,22 +647,17 @@ footer { padding-bottom: 30px; position: relative; } - footer .home { color: #3d5cb3; font-size: 1.1rem; } - footer a { color: #000; } - footer a:hover { text-decoration: none; } - footer .badge { color: #fff; font-size: 0.9rem; -} -/*# sourceMappingURL=styles.css.map */ \ No newline at end of file +}/*# sourceMappingURL=styles.css.map */ \ No newline at end of file diff --git a/docs/styles.css.map b/docs/styles.css.map index 0c62735..e9e1349 100644 --- a/docs/styles.css.map +++ b/docs/styles.css.map @@ -1,9 +1 @@ -{ - "version": 3, - "mappings": "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", - "sources": [ - "styles.scss" - ], - "names": [], - "file": "styles.css" -} \ No newline at end of file +{"version":3,"sources":["styles.scss"],"names":[],"mappings":"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","file":"styles.css"} \ No newline at end of file diff --git a/docs/styles.scss b/docs/styles.scss index 9d6b97e..8441407 100644 --- a/docs/styles.scss +++ b/docs/styles.scss @@ -14,6 +14,14 @@ h1, h2, h3, h4 { .bold { font-weight: 500; } +.warning { + font-weight: 500; + color: rgb(156, 1, 1); +} +.larger { + margin-top: 10px; + font-size: 1.5rem !important; +} .medium { font-weight: 500; } diff --git a/docs/v4/history.html b/docs/v4/history.html index 14962b5..2aedaf7 100644 --- a/docs/v4/history.html +++ b/docs/v4/history.html @@ -83,6 +83,26 @@ + + 4.34.19 + 2021-03-16 + inetLatency() inetChecksite() schema avlidation + + + 4.34.18 + 2021-03-16 + code refactoring + + + 4.34.17 + 2021-03-14 + sanitizeShellString() and other security improvements + + + 4.34.16 + 2021-03-14 + sanitizeShellString() improvements + 4.34.15 2020-02-23 diff --git a/docs/v4/index.html b/docs/v4/index.html index 4348562..770659a 100644 --- a/docs/v4/index.html +++ b/docs/v4/index.html @@ -165,12 +165,12 @@

- Security advisory:
Update to v4.34.11
+ Security advisory:
Update to v4.34.17
systeminformation
 
Version 4 documentation
-
Current Version: 4.34.15
+
Current Version: 4.34.19
@@ -320,7 +320,7 @@
Issues
-
Security issues: Please have a look at our security advisories
+
Security issues: Please have a look at our security advisories
If you run into problems, please check out known issues page first. If you still have problems, please feel free to open an issue on our github page
diff --git a/docs/v4/security.html b/docs/v4/security.html index 6a41d03..343d435 100644 --- a/docs/v4/security.html +++ b/docs/v4/security.html @@ -42,6 +42,28 @@
Security Advisories
+

Passing User Paramters to Systeminformation

+

For most of the applications that are using systeminformation, there is no reason to worry. But be aware! If you are using inetLatency(), inetChecksite(), services(), processLoad() with arbitrary untrusted user input, you should pay extra attention! We are doing a lot of input sanitation for those functions inside this package but we cannot handle all cases!

+

This can lead to serious impact on your servers!

+

We highly recommend to always upgrade to the latest version of our package. We maintain security updates for version 5 AND also version 4. For version 4 you can install latest version by placing "systeminformation": "^4" in your package.json (dependencies) and run npm install

+ +

Command Injection Vulnerability

+

Affected versions: + < 4.34.17
+ Date: 2021-03-15
+ CVE indentifier - +

+ +

Impact

+

We had an issue that there was a possibility to perform a potential command injection possibility by passing a manipulated string prototype as a parameter to the following functions. Affected commands: inetLatency(), inetChecksite(), services(), processLoad().

+ +

Patch

+

Problem was fixed with additional parameter checking. Please upgrade to version >= 4.34.17 if you are using version 4.

+ +

Workarround

+

If you cannot upgrade, be sure to check or sanitize parameter strings that are passed to inetLatency(), inetChecksite(), services(), processLoad() (string only)

+
+

Insufficient File Scheme Validation

Affected versions: 4.34.12
diff --git a/docs/v4/styles.css b/docs/v4/styles.css index 624a5b5..40c2066 100644 --- a/docs/v4/styles.css +++ b/docs/v4/styles.css @@ -17,6 +17,11 @@ h1, h2, h3, h4 { font-weight: 700; } +.warning { + font-weight: 500; + color: #9c0101; +} + .bg-image-full { background: no-repeat center center scroll; background-color: #4b2313; @@ -28,41 +33,20 @@ h1, h2, h3, h4 { height: 100vh; height: calc(var(--vh, 1vh) * 100); opacity: 0.95; - display: -webkit-box; - display: -ms-flexbox; display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; + justify-content: center; text-align: center; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; + flex-direction: column; } - .bg-image-full .container { text-align: center; - -ms-flex-item-align: center; - align-self: center; - display: -webkit-box; - display: -ms-flexbox; + align-self: center; display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; + justify-content: center; + flex-direction: column; + align-items: center; + flex-grow: 1; } - .bg-image-full .recommendation { position: absolute; top: 40px; @@ -71,26 +55,22 @@ h1, h2, h3, h4 { display: inline-block; width: 330px; text-align: center; - padding: .25em 0; + padding: 0.25em 0; color: white; - -webkit-transform: rotate(45deg); - transform: rotate(45deg); + transform: rotate(45deg); background: #971d1d; font-size: 0.9rem; } - @media only screen and (min-width: 420px) { .bg-image-full .recommendation { - font-size: 1.0rem; + font-size: 1rem; } } - @media only screen and (min-width: 768px) { .bg-image-full .recommendation { font-size: 1.1rem; } } - @media only screen and (min-width: 1024px) { .bg-image-full .recommendation { top: 50px; @@ -98,148 +78,123 @@ h1, h2, h3, h4 { font-size: 1.2rem; } } - .bg-image-full .recommendation:hover { text-decoration: none; } - .bg-image-full .title { color: #fff; padding-top: 10px; font-size: 1.8rem; margin-bottom: 10px; } - @media only screen and (min-width: 420px) { .bg-image-full .title { font-size: 2.4rem; } } - @media only screen and (min-width: 768px) { .bg-image-full .title { font-size: 3.2rem; } } - @media only screen and (min-width: 1024px) { .bg-image-full .title { font-size: 4rem; } } - .bg-image-full .logo { width: 100px; } - @media only screen and (min-width: 420px) { .bg-image-full .logo { width: 120px; } } - @media only screen and (min-width: 768px) { .bg-image-full .logo { width: 160px; } } - @media only screen and (min-width: 1024px) { .bg-image-full .logo { width: 200px; } } - .bg-image-full .subtitle { text-align: center; color: #bbb; font-size: 0.78rem; } - @media only screen and (min-width: 375px) { .bg-image-full .subtitle { font-size: 0.9rem; } } - @media only screen and (min-width: 420px) { .bg-image-full .subtitle { font-size: 1rem; } } - @media only screen and (min-width: 768px) { .bg-image-full .subtitle { font-size: 1.1rem; } } - @media only screen and (min-width: 1024px) { .bg-image-full .subtitle { font-size: 1.3rem; } } - .bg-image-full .text > a { text-align: center; color: #fff; font-size: 0.9rem; } - .bg-image-full .text > a:hover { color: #aaa; text-decoration: none; } - @media only screen and (min-width: 375px) { .bg-image-full .text > a { font-size: 0.9rem; } } - @media only screen and (min-width: 420px) { .bg-image-full .text > a { font-size: 1rem; } } - @media only screen and (min-width: 768px) { .bg-image-full .text > a { font-size: 1rem; } } - @media only screen and (min-width: 1024px) { .bg-image-full .text > a { font-size: 1.1rem; } } - .bg-image-full .version { text-align: center; margin-bottom: 10px; color: #fff; - font-size: .9rem; + font-size: 0.9rem; } - @media only screen and (min-width: 420px) { .bg-image-full .version { - font-size: .9rem; + font-size: 0.9rem; } } - @media only screen and (min-width: 768px) { .bg-image-full .version { font-size: 1rem; } } - @media only screen and (min-width: 1024px) { .bg-image-full .version { font-size: 1.1rem; } } - .bg-image-full .down { text-align: center; color: #fff; @@ -248,7 +203,6 @@ h1, h2, h3, h4 { margin-bottom: 15px; cursor: pointer; } - .bg-image-full .down .caret { font-size: 3rem; } @@ -264,12 +218,10 @@ h1, h2, h3, h4 { height: 65px; position: relative; } - .nav .logo { width: 60px; margin-top: 12px; } - .nav .title { display: none; color: #fff; @@ -277,55 +229,45 @@ h1, h2, h3, h4 { margin-left: 15px; margin-top: 18px; } - @media only screen and (min-width: 768px) { .nav .title { display: inline-block; } } - @media only screen and (min-width: 1024px) { .nav .title { font-size: 1.2rem; } } - .nav .text { margin-top: 18px; } - .nav .text a { color: #fff; margin-top: 12px; - font-size: 1.0rem; + font-size: 1rem; } - @media only screen and (min-width: 1023px) { .nav .text a { margin-top: 10px; font-size: 1.2rem; } } - .nav .text a:hover { color: #aaa; text-decoration: none; } - .nav .github { display: none; } - @media only screen and (min-width: 768px) { .nav .github { display: inline-block; } } - .nav .todocs { display: inline-block; } - @media only screen and (min-width: 768px) { .nav .todocs { display: none; @@ -336,50 +278,41 @@ h1, h2, h3, h4 { text-align: center; color: #333; } - .features .inner { padding: 10px 0px; } - @media only screen and (min-width: 768px) { .features .inner { padding: 15px 20px; } } - .features .inner .icons { display: block; font-size: 3rem; color: #bbb; } - @media only screen and (min-width: 420px) { .features .inner .icons { font-size: 3.5rem; } } - @media only screen and (min-width: 768px) { .features .inner .icons { font-size: 4rem; } } - @media only screen and (min-width: 1024px) { .features .inner .icons { font-size: 5rem; } } - .features .inner .icontitle { font-size: 1.2rem; } - .features .inner:hover { background: #f4f4f4; color: #567adf; } - .features .inner:hover .icons { color: #567adf; } @@ -389,13 +322,11 @@ h1, h2, h3, h4 { padding-top: 20px; font-size: 2rem; } - @media only screen and (min-width: 420px) { .sectionheader .title { font-size: 2.3rem; } } - @media only screen and (min-width: 768px) { .sectionheader .title { text-align: left; @@ -403,25 +334,21 @@ h1, h2, h3, h4 { font-size: 2.6rem; } } - @media only screen and (min-width: 1024px) { .sectionheader .title { padding-top: 30px; font-size: 3rem; } } - .sectionheader .title-small { text-align: center; font-size: 1.4rem; } - @media only screen and (min-width: 420px) { .sectionheader .title-small { font-size: 1.6rem; } } - @media only screen and (min-width: 768px) { .sectionheader .title-small { text-align: left; @@ -429,53 +356,44 @@ h1, h2, h3, h4 { font-size: 1.8rem; } } - @media only screen and (min-width: 1024px) { .sectionheader .title-small { padding-top: 30px; font-size: 2rem; } } - .sectionheader .subtitle { text-align: center; - font-size: .9rem; + font-size: 0.9rem; } - @media only screen and (min-width: 420px) { .sectionheader .subtitle { font-size: 1rem; } } - @media only screen and (min-width: 768px) { .sectionheader .subtitle { text-align: left; font-size: 1.1rem; } } - @media only screen and (min-width: 1024px) { .sectionheader .subtitle { font-size: 1.3rem; } } - .sectionheader .npmicons { text-align: center; } - .sectionheader .text { text-align: center; padding-top: 10px; } - @media only screen and (min-width: 768px) { .sectionheader .text { text-align: left; } } - .sectionheader hr { margin-top: 40px; margin-bottom: 0px; @@ -485,15 +403,12 @@ h1, h2, h3, h4 { .index { margin: 0 0 10px 0; } - .index .text, .index .subtitle, .index .title, .index .title-small, .index .npmicons { text-align: center; } - .index a { text-decoration: none; } - .index a:hover { text-decoration: none; color: #567adf; @@ -515,34 +430,28 @@ ul { margin-top: 40px; text-align: center; } - .number-section .numbers { font-size: 2rem; } - @media only screen and (min-width: 420px) { .number-section .numbers { font-size: 2.4rem; } } - @media only screen and (min-width: 768px) { .number-section .numbers { font-size: 2.8rem; } } - .number-section .title { color: #999; font-size: 1rem; } - @media only screen and (min-width: 420px) { .number-section .title { font-size: 1.1rem; } } - @media only screen and (min-width: 768px) { .number-section .title { font-size: 1.2rem; @@ -552,53 +461,43 @@ ul { .menu { display: none; } - @media only screen and (min-width: 768px) { .menu { margin-top: 30px; display: inline-block; } } - .menu .title { margin: 25px 0 5px 0; color: #000; } - .menu .title a { width: 100%; color: #000; text-decoration: none; } - .menu .title a:hover { color: #567adf; } - .menu hr { margin: 5px 0; } - .menu ul { list-style-type: none; margin: 0; padding: 0; } - .menu ul li { padding: 2px 0; } - .menu ul li a { width: 100%; color: #666; text-decoration: none; } - .menu ul li a:hover { color: #567adf; } - .menu ul li.active > a { color: #567adf; } @@ -633,20 +532,16 @@ pre { .example td:first-child { background-color: #fff !important; } - .example td:last-child { background-color: #f8faff !important; } - .example h5 { padding-top: 5px; padding-left: 10px; } - .example pre { background-color: unset; } - .example pre .js { background-color: #f0f0f4; } @@ -658,11 +553,9 @@ footer { padding-bottom: 30px; position: relative; } - footer a { color: #000; } - footer .badge { color: #fff; font-size: 0.9rem; @@ -675,5 +568,4 @@ footer .badge { .v5 { color: #567adf; -} -/*# sourceMappingURL=styles.css.map */ \ No newline at end of file +}/*# sourceMappingURL=styles.css.map */ \ No newline at end of file diff --git a/docs/v4/styles.css.map b/docs/v4/styles.css.map index 33deed5..071e29d 100644 --- a/docs/v4/styles.css.map +++ b/docs/v4/styles.css.map @@ -1,9 +1 @@ -{ - "version": 3, - "mappings": "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", - "sources": [ - "styles.scss" - ], - "names": [], - "file": "styles.css" -} \ No newline at end of file +{"version":3,"sources":["styles.scss"],"names":[],"mappings":"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","file":"styles.css"} \ No newline at end of file diff --git a/docs/v4/styles.scss b/docs/v4/styles.scss index 143a9f5..ff3b0d9 100644 --- a/docs/v4/styles.scss +++ b/docs/v4/styles.scss @@ -13,6 +13,10 @@ h1, h2, h3, h4 { .bold { font-weight: 700; } +.warning { + font-weight: 500; + color: rgb(156, 1, 1); +} .bg-image-full { background: no-repeat center center scroll; background-color: #4b2313; /* For browsers that do not support gradients */ diff --git a/lib/cpu.js b/lib/cpu.js index 6476301..8ef1f02 100644 --- a/lib/cpu.js +++ b/lib/cpu.js @@ -937,7 +937,7 @@ function cpuTemperature(callback) { if (_linux) { // CPU Chipset, Socket try { - const cmd = 'cat /sys/class/thermal/thermal_zone*/type; echo "-----"; cat /sys/class/thermal/thermal_zone*/temp;'; + const cmd = 'cat /sys/class/thermal/thermal_zone*/type 2>/dev/null; echo "-----"; cat /sys/class/thermal/thermal_zone*/temp 2>/dev/null;'; const parts = execSync(cmd).toString().split('-----\n'); if (parts.length === 2) { const lines = parts[0].split('\n'); diff --git a/lib/docker.js b/lib/docker.js index 235487e..89705eb 100644 --- a/lib/docker.js +++ b/lib/docker.js @@ -470,7 +470,7 @@ function dockerContainerStats(containerIDs, callback) { if (containerIDsSanitized !== '*') { containerIDsSanitized = ''; const s = (util.isPrototypePolluted() ? '' : util.sanitizeShellString(containerIDs, true)).trim(); - for (let i = 0; i <= 2000; i++) { + for (let i = 0; i <= util.mathMin(s.length, 2000); i++) { if (!(s[i] === undefined)) { s[i].__proto__.toLowerCase = util.stringToLower; const sl = s[i].toLowerCase(); diff --git a/lib/graphics.js b/lib/graphics.js index 06c3b80..42e06e2 100644 --- a/lib/graphics.js +++ b/lib/graphics.js @@ -728,7 +728,7 @@ function graphics(callback) { const nvidiaData = nvidiaDevices(); // needs to be rewritten ... using no spread operators result.controllers = result.controllers.map((controller) => { // match by busAddress - return mergeControllerNvidia(controller, nvidiaData.find(({ pciBus }) => pciBus.endsWith(controller.busAddress)) || {}); + return mergeControllerNvidia(controller, nvidiaData.find(({ pciBus }) => pciBus.toLowerCase().endsWith(controller.busAddress.toLowerCase())) || {}); }); } let cmd = 'clinfo --raw'; diff --git a/lib/index.d.ts b/lib/index.d.ts index 36ccb91..30b2530 100644 --- a/lib/index.d.ts +++ b/lib/index.d.ts @@ -876,6 +876,8 @@ export function inetChecksite(url: string, cb?: (data: Systeminformation.InetChe export function inetLatency(host?: string, cb?: (data: number) => any): Promise; export function wifiNetworks(cb?: (data: Systeminformation.WifiNetworkData[]) => any): Promise; +export function wifiInterfaces(cb?: (data: Systeminformation.WifiInterfaceData[]) => any): Promise; +export function wifiConnections(cb?: (data: Systeminformation.WifiConnectionData[]) => any): Promise; export function users(cb?: (data: Systeminformation.UserData[]) => any): Promise; diff --git a/lib/internet.js b/lib/internet.js index 6c4e9af..cc996e1 100644 --- a/lib/internet.js +++ b/lib/internet.js @@ -13,8 +13,7 @@ // 12. Internet // ---------------------------------------------------------------------------------- -const exec = require('child_process').exec; -const execFile = require('child_process').execFile; +// const exec = require('child_process').exec; const util = require('./util'); let _platform = process.platform; @@ -46,11 +45,11 @@ function inetChecksite(url, callback) { } let urlSanitized = ''; const s = util.sanitizeShellString(url, true); - for (let i = 0; i <= 2000; i++) { + for (let i = 0; i <= util.mathMin(s.length, 2000); i++) { if (!(s[i] === undefined)) { s[i].__proto__.toLowerCase = util.stringToLower; const sl = s[i].toLowerCase(); - if (sl && sl[0] && !sl[1]) { + if (sl && sl[0] && !sl[1] && sl[0].length === 1) { urlSanitized = urlSanitized + sl[0]; } } @@ -59,18 +58,20 @@ function inetChecksite(url, callback) { try { if (urlSanitized && !util.isPrototypePolluted()) { urlSanitized.__proto__.startsWith = util.stringStartWith; - if (urlSanitized.startsWith('file:')) { + if (urlSanitized.startsWith('file:') || urlSanitized.startsWith('gopher:') || urlSanitized.startsWith('telnet:') || urlSanitized.startsWith('mailto:') || urlSanitized.startsWith('news:') || urlSanitized.startsWith('nntp:')) { if (callback) { callback(result); } return resolve(result); } let t = Date.now(); if (_linux || _freebsd || _openbsd || _netbsd || _darwin || _sunos) { - let args = ' -I --connect-timeout 5 -m 5 ' + urlSanitized + ' 2>/dev/null | head -n 1 | cut -d " " -f2'; + let args = ['-I', '--connect-timeout', '5', '-m', '5']; + args.push(urlSanitized); let cmd = 'curl'; - exec(cmd + args, function (error, stdout) { - let statusCode = parseInt(stdout.toString()); + util.execSafe(cmd, args).then((stdout) => { + const lines = stdout.split('\n'); + let statusCode = lines[0] && lines[0].indexOf(' ') >= 0 ? parseInt(lines[0].split(' ')[1], 10) : 404; result.status = statusCode || 404; - result.ok = !error && (statusCode === 200 || statusCode === 301 || statusCode === 302 || statusCode === 304); + result.ok = (statusCode === 200 || statusCode === 301 || statusCode === 302 || statusCode === 304); result.ms = (result.ok ? Date.now() - t : null); if (callback) { callback(result); } resolve(result); @@ -142,7 +143,7 @@ function inetLatency(host, callback) { } let hostSanitized = ''; const s = (util.isPrototypePolluted() ? '8.8.8.8' : util.sanitizeShellString(host, true)).trim(); - for (let i = 0; i <= 2000; i++) { + for (let i = 0; i <= util.mathMin(s.length, 2000); i++) { if (!(s[i] === undefined)) { s[i].__proto__.toLowerCase = util.stringToLower; const sl = s[i].toLowerCase(); @@ -152,7 +153,7 @@ function inetLatency(host, callback) { } } hostSanitized.__proto__.startsWith = util.stringStartWith; - if (hostSanitized.startsWith('file:')) { + if (hostSanitized.startsWith('file:') || hostSanitized.startsWith('gopher:') || hostSanitized.startsWith('telnet:') || hostSanitized.startsWith('mailto:') || hostSanitized.startsWith('news:') || hostSanitized.startsWith('nntp:')) { if (callback) { callback(null); } return resolve(null); } @@ -160,21 +161,21 @@ function inetLatency(host, callback) { let filt; if (_linux || _freebsd || _openbsd || _netbsd || _darwin) { if (_linux) { - params = '-c 2 -w 3 ' + hostSanitized; + params = ['-c', '2', '-w', '3', hostSanitized]; filt = 'rtt'; } if (_freebsd || _openbsd || _netbsd) { - params = '-c 2 -t 3 ' + hostSanitized; + params = ['-c', '2', '-t', '3', hostSanitized]; filt = 'round-trip'; } if (_darwin) { - params = '-c2 -t3 ' + hostSanitized; + params = ['-c2', '-t3', hostSanitized]; filt = 'avg'; } - execFile('ping', params.split(' '), function (error, stdout) { + util.execSafe('ping', params).then((stdout) => { let result = null; - if (!error) { - const lines = stdout.toString().split('\n').filter(line => line.indexOf(filt) >= 0).join('\n'); + if (stdout) { + const lines = stdout.split('\n').filter(line => line.indexOf(filt) >= 0).join('\n'); const line = lines.split('='); if (line.length > 1) { @@ -189,12 +190,12 @@ function inetLatency(host, callback) { }); } if (_sunos) { - const params = '-s -a ' + hostSanitized + ' 56 2'; + const params = ['-s', '-a', hostSanitized, '56', '2']; const filt = 'avg'; - execFile('ping', params.split(' '), { timeout: 3000 }, function (error, stdout) { + util.execSafe('ping', params, { timeout: 3000 }).then((stdout) => { let result = null; - if (!error) { - const lines = stdout.toString().split('\n').filter(line => line.indexOf(filt) >= 0).join('\n'); + if (stdout) { + const lines = stdout.split('\n').filter(line => line.indexOf(filt) >= 0).join('\n'); const line = lines.split('='); if (line.length > 1) { const parts = line[1].split('/'); @@ -210,10 +211,10 @@ function inetLatency(host, callback) { if (_windows) { let result = null; try { - const params = hostSanitized + ' -n 1'; - execFile('ping', params.split(' '), util.execOptsWin, function (error, stdout) { - if (!error) { - let lines = stdout.toString().split('\r\n'); + const params = [hostSanitized, '-n', '1']; + util.execSafe('ping', params, util.execOptsWin).then((stdout) => { + if (stdout) { + let lines = stdout.split('\r\n'); lines.shift(); lines.forEach(function (line) { if ((line.toLowerCase().match(/ms/g) || []).length === 3) { diff --git a/lib/network.js b/lib/network.js index 9e1087b..0dc8d9e 100644 --- a/lib/network.js +++ b/lib/network.js @@ -1061,7 +1061,7 @@ function networkStatsSingle(iface) { process.nextTick(() => { let ifaceSanitized = ''; const s = util.isPrototypePolluted() ? '---' : util.sanitizeShellString(iface); - for (let i = 0; i <= 2000; i++) { + for (let i = 0; i <= util.mathMin(s.length, 2000); i++) { if (!(s[i] === undefined)) { ifaceSanitized = ifaceSanitized + s[i]; } diff --git a/lib/osinfo.js b/lib/osinfo.js index c4458d8..5e06acd 100644 --- a/lib/osinfo.js +++ b/lib/osinfo.js @@ -485,6 +485,10 @@ function versions(apps, callback) { apps = '*'; } else { apps = apps || '*'; + if (typeof apps !== 'string') { + if (callback) { callback({}); } + return resolve({}); + } } const appsObj = checkVersionParam(apps); let totalFunctions = appsObj.counter; diff --git a/lib/processes.js b/lib/processes.js index 400c01f..c569a22 100644 --- a/lib/processes.js +++ b/lib/processes.js @@ -18,8 +18,6 @@ const fs = require('fs'); const path = require('path'); const exec = require('child_process').exec; const execSync = require('child_process').execSync; -const execFile = require('child_process').execFile; - const util = require('./util'); @@ -111,7 +109,7 @@ function services(srv, callback) { srvString.__proto__.trim = util.stringTrim; const s = util.sanitizeShellString(srv); - for (let i = 0; i <= 2000; i++) { + for (let i = 0; i <= util.mathMin(s.length, 2000); i++) { if (!(s[i] === undefined)) { srvString = srvString + s[i]; } @@ -164,15 +162,15 @@ function services(srv, callback) { } } } - if ((_darwin) && srvString === '*') { // service enumeration mnot yet suported on mac OS + if ((_darwin) && srvString === '*') { // service enumeration not yet suported on mac OS if (callback) { callback(result); } resolve(result); } - let comm = (_darwin) ? 'ps -caxo pcpu,pmem,pid,command' : 'ps -axo pcpu,pmem,pid,command'; + let args = (_darwin) ? ['-caxo', 'pcpu,pmem,pid,command'] : ['-axo', 'pcpu,pmem,pid,command']; if (srvString !== '' && srvs.length > 0) { - exec(comm + ' | grep -v grep | grep -iE "' + srvString + '"', { maxBuffer: 1024 * 20000 }, function (error, stdout) { // lgtm [js/shell-command-constructed-from-input] - if (!error) { - let lines = stdout.toString().replace(/ +/g, ' ').replace(/,+/g, '.').split('\n'); + util.execSafe('ps', args).then((stdout) => { + if (stdout) { + let lines = stdout.replace(/ +/g, ' ').replace(/,+/g, '.').split('\n'); srvs.forEach(function (srv) { let ps; if (_darwin) { @@ -267,9 +265,10 @@ function services(srv, callback) { resolve(result); } } else { - exec('ps -o comm | grep -v grep | egrep "' + srvString + '"', { maxBuffer: 1024 * 20000 }, function (error, stdout) { // lgtm [js/shell-command-constructed-from-input] - if (!error) { - let lines = stdout.toString().replace(/ +/g, ' ').replace(/,+/g, '.').split('\n'); + args = ['-o', 'comm']; + util.execSafe('ps', args).then((stdout) => { + if (stdout) { + let lines = stdout.replace(/ +/g, ' ').replace(/,+/g, '.').split('\n'); srvs.forEach(function (srv) { let ps = lines.filter(function (e) { return e.indexOf(srv) !== -1; @@ -909,7 +908,7 @@ function processLoad(proc, callback) { processesString.__proto__.trim = util.stringTrim; const s = util.sanitizeShellString(proc); - for (let i = 0; i <= 2000; i++) { + for (let i = 0; i <= util.mathMin(s.length, 2000); i++) { if (!(s[i] === undefined)) { processesString = processesString + s[i]; } @@ -1057,9 +1056,9 @@ function processLoad(proc, callback) { } if (_darwin || _linux || _freebsd || _openbsd || _netbsd) { - const params = '-axo pid,pcpu,pmem,comm'; - execFile('ps', params.split(' '), { maxBuffer: 1024 * 20000 }, function (error, stdout) { - if (!error) { + const params = ['-axo', 'pid,pcpu,pmem,comm']; + util.execSafe('ps', params).then((stdout) => { + if (stdout) { let procStats = []; let lines = stdout.toString().split('\n').filter(function (line) { if (processesString === '*') { return true; } diff --git a/lib/util.js b/lib/util.js index 24b3e6e..16f22c3 100644 --- a/lib/util.js +++ b/lib/util.js @@ -58,6 +58,7 @@ const stringToString = new String().toString; const stringSubstr = new String().substr; const stringTrim = new String().trim; const stringStartWith = new String().startsWith; +const mathMin = Math.min; function isFunction(functionToCheck) { let getType = {}; @@ -332,7 +333,7 @@ function wmic(command, options) { } function getVboxmanage() { - return _windows ? `${process.env.VBOX_INSTALL_PATH || process.env.VBOX_MSI_INSTALL_PATH}\\VBoxManage.exe` : 'vboxmanage'; + return _windows ? `"${process.env.VBOX_INSTALL_PATH || process.env.VBOX_MSI_INSTALL_PATH}\\VBoxManage.exe"` : 'vboxmanage'; } function powerShell(cmd) { @@ -389,6 +390,42 @@ function powerShell(cmd) { }); } +function execSafe(cmd, args, options) { + let result = ''; + options = options || {}; + + return new Promise((resolve) => { + process.nextTick(() => { + try { + const child = spawn(cmd, args, options); + + if (child && !child.pid) { + child.on('error', function () { + resolve(result); + }); + } + if (child && child.pid) { + child.stdout.on('data', function (data) { + result += data.toString(); + }); + child.on('close', function () { + child.kill(); + resolve(result); + }); + child.on('error', function () { + child.kill(); + resolve(result); + }); + } else { + resolve(result); + } + } catch (e) { + resolve(result); + } + }); + }); +} + function getCodepage() { if (_windows) { if (!codepage) { @@ -506,7 +543,7 @@ function countLines(lines, startingWith) { function sanitizeShellString(str, strict = false) { const s = str || ''; let result = ''; - for (let i = 0; i <= 2000; i++) { + for (let i = 0; i <= mathMin(s.length, 2000); i++) { if (!(s[i] === undefined || s[i] === '>' || s[i] === '<' || @@ -529,10 +566,11 @@ function sanitizeShellString(str, strict = false) { s[i] === '\'' || s[i] === '`' || s[i] === '"' || - strict && s[i] === '@' || - strict && s[i] === ' ' || - strict && s[i] == '{' || - strict && s[i] == ')')) { + s[i].length > 1 || + (strict && s[i] === '@') || + (strict && s[i] === ' ') || + (strict && s[i] == '{') || + (strict && s[i] == ')'))) { result = result + s[i]; } } @@ -924,6 +962,7 @@ exports.wmic = wmic; exports.darwinXcodeExists = darwinXcodeExists; exports.getVboxmanage = getVboxmanage; exports.powerShell = powerShell; +exports.execSafe = execSafe; exports.nanoSeconds = nanoSeconds; exports.countUniqueLines = countUniqueLines; exports.countLines = countLines; @@ -942,5 +981,6 @@ exports.stringToString = stringToString; exports.stringSubstr = stringSubstr; exports.stringTrim = stringTrim; exports.stringStartWith = stringStartWith; +exports.mathMin = mathMin; exports.WINDIR = WINDIR; exports.getFilesInPath = getFilesInPath; diff --git a/package.json b/package.json index 7ebfa89..20d3a62 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "systeminformation", - "version": "5.6.2", + "version": "5.6.10", "description": "Simple system and OS information library", "license": "MIT", "author": "Sebastian Hildebrandt (https://plus-innovations.com)",