webapi: don't accept zero-length childnames during traversal. Closes #358, #676.
authorBrian Warner <warner@lothar.com>
Sun, 27 Dec 2009 20:10:43 +0000 (15:10 -0500)
committerBrian Warner <warner@lothar.com>
Sun, 27 Dec 2009 20:10:43 +0000 (15:10 -0500)
commit499add09e6b1ba62c3dcfc33a0ef719f5a4f1bb9
tree020411ef2d66d420c3703a88c822e5c5ff1ec3df
parent2e0a61a9539515fa41aff6573ab45bbb34555d8c
webapi: don't accept zero-length childnames during traversal. Closes #358, #676.

This forbids operations that would implicitly create a directory with a
zero-length (empty string) name, like what you'd get if you did "tahoe put
local /oops/blah" (#358) or "POST /uri/CAP//?t=mkdir" (#676). The error
message is fairly friendly too.

Also added code to "tahoe put" to catch this error beforehand and suggest the
correct syntax (i.e. without the leading slash).
src/allmydata/interfaces.py
src/allmydata/scripts/tahoe_put.py
src/allmydata/test/test_web.py
src/allmydata/web/common.py
src/allmydata/web/directory.py