Brian Gough 9 лет назад
Родитель
Сommit
1273a05ad4

+ 1 - 1
services/clsi/app/coffee/ResourceWriter.coffee

@@ -90,7 +90,7 @@ module.exports = ResourceWriter =
 
 	checkPath: (basePath, resourcePath, callback) ->
 		path = Path.normalize(Path.join(basePath, resourcePath))
-		if (path.slice(0, basePath.length) != basePath)
+		if (path.slice(0, basePath.length + 1) != basePath + "/")
 			return callback new Error("resource path is outside root directory")
 		else
 			return callback(null, path)

+ 8 - 0
services/clsi/test/unit/coffee/ResourceWriterTests.coffee

@@ -173,3 +173,11 @@ describe "ResourceWriter", ->
 			it "should return an error", ->
 				@callback.calledWith(new Error("resource path is outside root directory"))
 				.should.equal true
+
+		describe "with another invalid path matching on a prefix", ->
+			beforeEach ->
+				@ResourceWriter.checkPath("foo", "../foobar/baz", @callback)
+
+			it "should return an error", ->
+				@callback.calledWith(new Error("resource path is outside root directory"))
+				.should.equal true