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


Reply via email to