aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2013-01-02 13:40:00 -0800
committerChris Lu <chris.lu@gmail.com>2013-01-02 13:40:00 -0800
commitc35fe9d6318ed9b38e7d05c9e1c0de5e2f06f54c (patch)
tree3a2c7adf83f406b9d0583d2f136884cb3a7cf0cf
parent018f0b73bea9c161a65e73190c8f53a7f0c00e77 (diff)
downloadseaweedfs-c35fe9d6318ed9b38e7d05c9e1c0de5e2f06f54c.tar.xz
seaweedfs-c35fe9d6318ed9b38e7d05c9e1c0de5e2f06f54c.zip
escape file name when there is a quote inside
-rw-r--r--weed-fs/src/cmd/weed/volume.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/weed-fs/src/cmd/weed/volume.go b/weed-fs/src/cmd/weed/volume.go
index 4d3737dbd..59a5623ea 100644
--- a/weed-fs/src/cmd/weed/volume.go
+++ b/weed-fs/src/cmd/weed/volume.go
@@ -42,6 +42,8 @@ var (
store *storage.Store
)
+var fileNameEscaper = strings.NewReplacer("\\","\\\\","\"","\\\"")
+
func statusHandler(w http.ResponseWriter, r *http.Request) {
m := make(map[string]interface{})
m["Version"] = VERSION
@@ -147,7 +149,7 @@ func GetHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", mtype)
}
if n.NameSize > 0 {
- w.Header().Set("Content-Disposition", "filename="+string(n.Name))
+ w.Header().Set("Content-Disposition", "filename="+fileNameEscaper.Replace(string(n.Name)))
}
if ext != ".gz" {
if n.IsGzipped() {