Author: mreutegg
Date: Thu Feb 5 16:16:52 2015
New Revision: 1657619
URL: http://svn.apache.org/r1657619
Log:
OAK-2482: oak-mongo.js does not escape special characters for regular
expressions
Modified:
jackrabbit/oak/trunk/oak-run/src/main/js/oak-mongo.js
Modified: jackrabbit/oak/trunk/oak-run/src/main/js/oak-mongo.js
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/js/oak-mongo.js?rev=1657619&r1=1657618&r2=1657619&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/js/oak-mongo.js (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/js/oak-mongo.js Thu Feb 5 16:16:52
2015
@@ -729,13 +729,13 @@ var oak = (function(global){
};
var pathFilter = function (depth, prefix){
- return new RegExp("^"+ depth + ":" + prefix);
+ return new RegExp("^"+ depth + ":" + escapeForRegExp(prefix));
};
var longPathFilter = function (depth, prefix) {
var filter = {};
filter._id = new RegExp("^" + depth + ":h");
- filter._path = new RegExp("^" + prefix);
+ filter._path = new RegExp("^" + escapeForRegExp(prefix));
return filter;
};
@@ -751,6 +751,11 @@ var oak = (function(global){
var i = Math.floor( Math.log(size) / Math.log(1024) );
return ( size / Math.pow(1024, i) ).toFixed(2) * 1 + ' ' + ['B', 'kB',
'MB', 'GB', 'TB'][i];
};
+
+ //
http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
+ var escapeForRegExp = function(s) {
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+ };
return api;
}(this));
\ No newline at end of file