提交 5d27d74c 作者: James Stanley 提交者: Steven Allen

Give a 400 for PUT to a name ending in a /

License: MIT
Signed-off-by: 's avatarJames Stanley <james@incoherency.co.uk>
上级 56c27ee0
......@@ -398,6 +398,11 @@ func (i *gatewayHandler) putHandler(w http.ResponseWriter, r *http.Request) {
return
}
if rootPath[len(rootPath)-1] == '/' {
webError(w, "putHandler: can't PUT a directory", err, http.StatusBadRequest)
return
}
rsegs := rootPath.Segments()
if rsegs[0] == ipnsPathPrefix {
webError(w, "putHandler: updating named entries not supported", errors.New("WritableGateway: ipns put not supported"), http.StatusBadRequest)
......@@ -427,11 +432,6 @@ func (i *gatewayHandler) putHandler(w http.ResponseWriter, r *http.Request) {
return
}
var newcid *cid.Cid
if newPath == "" {
// not inserting anything: directory tree is unchanged
newcid = c
} else {
rnode, err := i.node.DAG.Get(ctx, c)
if err != nil {
webError(w, "putHandler: Could not create DAG from request", err, http.StatusInternalServerError)
......@@ -457,8 +457,7 @@ func (i *gatewayHandler) putHandler(w http.ResponseWriter, r *http.Request) {
return
}
newcid = nnode.Cid()
}
newcid := nnode.Cid()
i.addUserHeaders(w) // ok, _now_ write user's headers.
w.Header().Set("IPFS-Hash", newcid.String())
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论