Skip to content

Commit b40cfef

Browse files
Merge pull request #71 from snoopysecurity/fix-crashes
fix: prevent crashes from app scanners
2 parents 63ddbc3 + 0bba4de commit b40cfef

3 files changed

Lines changed: 31 additions & 20 deletions

File tree

controllers/notebook.js

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -84,25 +84,27 @@ module.exports = {
8484
});
8585
},
8686
get_release: (req, res) => {
87+
try {
88+
var uservalue = decodeURI(req.params.release.toString())
89+
var xpath_result = xpath.evaluate(
90+
"//config/*[local-name(.)='release' and //config//release/text()='" + uservalue + "']", // xpathExpression
91+
doc, // contextNode
92+
null, // namespaceResolver
93+
xpath.XPathResult.ANY_TYPE, // resultType
94+
null // result
95+
)
96+
97+
var result = [];
98+
node = xpath_result.iterateNext();
99+
while (node) {
100+
result.push(node.toString());
101+
node = xpath_result.iterateNext();
102+
}
87103

88-
var uservalue = decodeURI(req.params.release.toString())
89-
var xpath_result = xpath.evaluate(
90-
"//config/*[local-name(.)='release' and //config//release/text()='" + uservalue + "']", // xpathExpression
91-
doc, // contextNode
92-
null, // namespaceResolver
93-
xpath.XPathResult.ANY_TYPE, // resultType
94-
null // result
95-
)
96-
97-
var result = [];
98-
node = xpath_result.iterateNext();
99-
while (node) {
100-
result.push(node.toString());
101-
node = xpath_result.iterateNext();
104+
res.send(result.toString());
105+
} catch (e) {
106+
res.status(500).send("Error processing request");
102107
}
103-
104-
res.send(result.toString());
105-
106108
},
107109
create_a_note: async (req, res) => {
108110
res = set_cors(req, res)

controllers/passphrase.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,13 @@ const options = {
9090
return res.status(500).send(err.message);
9191
}
9292

93-
const payload = Buffer.from(req.body.data, 'base64');
94-
const data = serialize.unserialize(payload.toString());
93+
let data;
94+
try {
95+
const payload = Buffer.from(req.body.data, 'base64');
96+
data = serialize.unserialize(payload.toString());
97+
} catch (e) {
98+
return res.status(400).send("Invalid data");
99+
}
95100

96101
if (data) {
97102
const myDoc = new PDFDocument({ bufferPages: true });

rpc_server.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ var needle = require('needle');
33

44
// Creates an XML-RPC server to listen to XML-RPC method calls
55
var server = xmlrpc.createServer({ port: process.env.XML_RPC_PORT, path: '/xmlrpc' })
6+
7+
server.on('error', function (err) {
8+
console.error('XML-RPC Server Error:', err);
9+
})
10+
611
// Handle methods not found
712
server.on('NotFound', function (method, params) {
813
console.log('Method ' + method + ' does not exist');
@@ -45,4 +50,3 @@ server.on('dvws.CheckUptime', function (err, params, callback) {
4550
})
4651

4752
console.log(`🚀 XML-RPC server listening on port ${process.env.XML_RPC_PORT}`)
48-

0 commit comments

Comments
 (0)