mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
Protect against node types with reserved names such as toString
Fixes #880
This commit is contained in:
parent
45ff86eae5
commit
0c53b5310a
@ -105,7 +105,7 @@ module.exports = {
|
||||
config.forEach(function(n) {
|
||||
if (n.type !== 'subflow' && n.type !== 'tab') {
|
||||
for (var prop in n) {
|
||||
if (n.hasOwnProperty(prop) && prop !== 'id' && prop !== 'wires' && prop !== '_users' && flow.configs[n[prop]]) {
|
||||
if (n.hasOwnProperty(prop) && prop !== 'id' && prop !== 'wires' && prop !== 'type' && prop !== '_users' && flow.configs[n[prop]]) {
|
||||
// This property references a global config node
|
||||
flow.configs[n[prop]]._users.push(n.id)
|
||||
}
|
||||
|
@ -223,7 +223,7 @@ function removeModule(module) {
|
||||
|
||||
function getNodeInfo(typeOrId) {
|
||||
var id = typeOrId;
|
||||
if (nodeTypeToId[typeOrId]) {
|
||||
if (nodeTypeToId.hasOwnProperty(typeOrId)) {
|
||||
id = nodeTypeToId[typeOrId];
|
||||
}
|
||||
/* istanbul ignore else */
|
||||
@ -248,7 +248,7 @@ function getFullNodeInfo(typeOrId) {
|
||||
// Used by index.enableNodeSet so that .file can be retrieved to pass
|
||||
// to loader.loadNodeSet
|
||||
var id = typeOrId;
|
||||
if (nodeTypeToId[typeOrId]) {
|
||||
if (nodeTypeToId.hasOwnProperty(typeOrId)) {
|
||||
id = nodeTypeToId[typeOrId];
|
||||
}
|
||||
/* istanbul ignore else */
|
||||
@ -348,7 +348,7 @@ function inheritNode(constructor) {
|
||||
}
|
||||
|
||||
function registerNodeConstructor(nodeSet,type,constructor) {
|
||||
if (nodeConstructors[type]) {
|
||||
if (nodeConstructors.hasOwnProperty(type)) {
|
||||
throw new Error(type+" already registered");
|
||||
}
|
||||
//TODO: Ensure type is known - but doing so will break some tests
|
||||
@ -440,7 +440,11 @@ function clear() {
|
||||
}
|
||||
|
||||
function getTypeId(type) {
|
||||
return nodeTypeToId[type];
|
||||
if (nodeTypeToId.hasOwnProperty(type)) {
|
||||
return nodeTypeToId[type];
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
function enableNodeSet(typeOrId) {
|
||||
@ -449,7 +453,7 @@ function enableNodeSet(typeOrId) {
|
||||
}
|
||||
|
||||
var id = typeOrId;
|
||||
if (nodeTypeToId[typeOrId]) {
|
||||
if (nodeTypeToId.hasOwnProperty(typeOrId)) {
|
||||
id = nodeTypeToId[typeOrId];
|
||||
}
|
||||
var config;
|
||||
@ -471,7 +475,7 @@ function disableNodeSet(typeOrId) {
|
||||
throw new Error("Settings unavailable");
|
||||
}
|
||||
var id = typeOrId;
|
||||
if (nodeTypeToId[typeOrId]) {
|
||||
if (nodeTypeToId.hasOwnProperty(typeOrId)) {
|
||||
id = nodeTypeToId[typeOrId];
|
||||
}
|
||||
var config;
|
||||
|
Loading…
Reference in New Issue
Block a user