mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-21 16:00:26 +01:00
fix: don't crash on objects with toString property
This commit is contained in:
@@ -112,16 +112,18 @@ async function onMessage(socket, payload) {
|
|||||||
return winston.warn('[socket.io] Empty payload');
|
return winston.warn('[socket.io] Empty payload');
|
||||||
}
|
}
|
||||||
|
|
||||||
const eventName = payload.data[0];
|
let eventName = payload.data[0];
|
||||||
const params = typeof payload.data[1] === 'function' ? {} : payload.data[1];
|
const params = typeof payload.data[1] === 'function' ? {} : payload.data[1];
|
||||||
const callback = typeof payload.data[payload.data.length - 1] === 'function' ? payload.data[payload.data.length - 1] : function () {};
|
const callback = typeof payload.data[payload.data.length - 1] === 'function' ? payload.data[payload.data.length - 1] : function () {};
|
||||||
|
|
||||||
|
try {
|
||||||
if (!eventName) {
|
if (!eventName) {
|
||||||
return winston.warn('[socket.io] Empty method name');
|
return winston.warn('[socket.io] Empty method name');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof eventName !== 'string') {
|
if (typeof eventName !== 'string') {
|
||||||
const escapedName = validator.escape(String(eventName));
|
eventName = typeof eventName;
|
||||||
|
const escapedName = validator.escape(eventName);
|
||||||
return callback({ message: `[[error:invalid-event, ${escapedName}]]` });
|
return callback({ message: `[[error:invalid-event, ${escapedName}]]` });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -153,7 +155,6 @@ async function onMessage(socket, payload) {
|
|||||||
return socket.disconnect();
|
return socket.disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
|
||||||
await checkMaintenance(socket);
|
await checkMaintenance(socket);
|
||||||
await validateSession(socket, '[[error:revalidate-failure]]');
|
await validateSession(socket, '[[error:revalidate-failure]]');
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user