Skip to content

Commit ed15646

Browse files
author
Adam Baldwin
committed
adding eslint rule to detect new buffer hotspot
1 parent 06893d2 commit ed15646

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

index.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ module.exports = {
1717
'detect-buffer-noassert': require('./rules/detect-buffer-noassert'),
1818
'detect-child-process': require('./rules/detect-child-process'),
1919
'detect-disable-mustache-escape': require('./rules/detect-disable-mustache-escape'),
20-
'detect-object-injection': require('./rules/detect-object-injection')
20+
'detect-object-injection': require('./rules/detect-object-injection'),
21+
'detect-new-buffer': require('./rules/detect-new-buffer')
2122
},
2223
rulesConfig: {
2324
'detect-unsafe-regex': 0,
@@ -31,6 +32,7 @@ module.exports = {
3132
'detect-buffer-noassert': 0,
3233
'detect-child-process': 0,
3334
'detect-disable-mustache-escape': 0,
34-
'detect-object-injection': 0
35+
'detect-object-injection': 0,
36+
'detect-new-buffer': 0
3537
}
3638
};

rules/detect-new-buffer.js

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
module.exports = function (context) {
2+
3+
var getSource = function (node) {
4+
var token = context.getTokens(node)[0];
5+
return token.loc.start.line+ ': ' + context.getSourceLines().slice(token.loc.start.line-1, token.loc.end.line).join('\n\t');
6+
}
7+
8+
9+
// Detects instances of new Buffer(argument)
10+
// where argument is any non literal value.
11+
return {
12+
"NewExpression": function (node) {
13+
if (node.callee.name === 'Buffer' &&
14+
node.arguments[0] &&
15+
node.arguments[0].type != 'Literal') {
16+
17+
return context.report(node, "Found new Buffer\n\t" + getSource(node));
18+
}
19+
20+
21+
22+
}
23+
};
24+
25+
}
26+

0 commit comments

Comments
 (0)