fix path match
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user