save: if part name is a path, only use the filename

This commit is contained in:
Robin Opletal 2021-01-12 21:58:54 +01:00 committed by Reto Brunner
parent bbe8ba5b31
commit 3720c86236

View file

@ -182,9 +182,17 @@ func generateFilename(part *models.BodyStructure) string {
filename = fn filename = fn
} else if fn, ok := part.Params["name"]; ok { } else if fn, ok := part.Params["name"]; ok {
filename = fn filename = fn
} else { }
// Some MUAs send attachments with names like /some/stupid/idea/happy.jpeg
// Assuming non hostile intent it does make sense to use just the last
// portion of the pathname as the filename for saving it.
filename = filename[strings.LastIndex(filename, "/")+1:]
switch filename {
case "", ".", "..":
timestamp := time.Now().Format("2006-01-02-150405") timestamp := time.Now().Format("2006-01-02-150405")
filename = fmt.Sprintf("aerc_%v", timestamp) filename = fmt.Sprintf("aerc_%v", timestamp)
default:
// already have a valid name
} }
return filename return filename
} }