mirror of
https://github.com/github/codeql.git
synced 2025-12-17 17:23:36 +01:00
58 lines
966 B
JavaScript
58 lines
966 B
JavaScript
var express = require('express');
|
|
var router = new express.Router();
|
|
var rootRoute = router.route('foobar');
|
|
|
|
var _ = require("lodash");
|
|
|
|
rootRoute.post(function (req, res) {
|
|
breaks(req.body);
|
|
|
|
throws(req.body);
|
|
|
|
returns(req.body);
|
|
|
|
lodashThrow(req.body);
|
|
});
|
|
|
|
function breaks(val) {
|
|
var ret = [];
|
|
|
|
for (var i = 0; i < val.length; i++) {
|
|
if (val[i] == null) {
|
|
break; // Prevents DoS.
|
|
}
|
|
ret.push(val[i]);
|
|
}
|
|
}
|
|
|
|
function throws(val) {
|
|
var ret = [];
|
|
|
|
for (var i = 0; i < val.length; i++) {
|
|
if (val[i] == null) {
|
|
throw 2; // Prevents DoS.
|
|
}
|
|
ret.push(val[i]);
|
|
}
|
|
}
|
|
|
|
// The obvious null-pointer detection should not hit this one.
|
|
function returns(val) {
|
|
var ret = [];
|
|
|
|
for (var i = 0; i < val.length; i++) {
|
|
if (val[i] == null) {
|
|
return 2; // Prevents DoS.
|
|
}
|
|
ret.push(val[i]);
|
|
}
|
|
}
|
|
|
|
function lodashThrow(val) {
|
|
_.map(val, function (e) {
|
|
if (!e) {
|
|
throw new Error(); // Prevents DoS.
|
|
}
|
|
})
|
|
}
|