summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRuben Bridgewater <ruben@bridgewater.de>2019-11-21 14:18:41 +0100
committerAnna Henningsen <anna@addaleax.net>2019-11-28 02:01:54 +0100
commit255461e19ab08748e2b9b375ff26191bd1cdc8d9 (patch)
treecc07722ea24acdaa5a522e0452f2a43d8de627dc /lib
parent3e6e0006d837c187814151f80847cba4693ebb4f (diff)
downloadandroid-node-v8-255461e19ab08748e2b9b375ff26191bd1cdc8d9.tar.gz
android-node-v8-255461e19ab08748e2b9b375ff26191bd1cdc8d9.tar.bz2
android-node-v8-255461e19ab08748e2b9b375ff26191bd1cdc8d9.zip
util: fix inspection of errors with tampered name or stack property
This makes sure that `util.inspect()` does not throw while inspecting errors that have the name or stack property set to a different type than string. Fixes: https://github.com/nodejs/node/issues/30572 PR-URL: https://github.com/nodejs/node/pull/30576 Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'lib')
-rw-r--r--lib/internal/util/inspect.js6
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/internal/util/inspect.js b/lib/internal/util/inspect.js
index 89237a09a5..9677dfb226 100644
--- a/lib/internal/util/inspect.js
+++ b/lib/internal/util/inspect.js
@@ -937,12 +937,12 @@ function getFunctionBase(value, constructor, tag) {
}
function formatError(err, constructor, tag, ctx) {
- let stack = err.stack || ErrorPrototypeToString(err);
+ const name = err.name != null ? String(err.name) : 'Error';
+ let len = name.length;
+ let stack = err.stack ? String(err.stack) : ErrorPrototypeToString(err);
// A stack trace may contain arbitrary data. Only manipulate the output
// for "regular errors" (errors that "look normal") for now.
- const name = err.name || 'Error';
- let len = name.length;
if (constructor === null ||
(name.endsWith('Error') &&
stack.startsWith(name) &&