diff --git a/src/api/core/ciphers.rs b/src/api/core/ciphers.rs index f22ec50..29f9e8c 100644 --- a/src/api/core/ciphers.rs +++ b/src/api/core/ciphers.rs @@ -383,7 +383,8 @@ fn post_attachment(uuid: String, data: Data, content_type: &ContentType, headers let base_path = Path::new(&CONFIG.attachments_folder).join(&cipher.uuid); Multipart::with_body(data.open(), boundary).foreach_entry(|mut field| { - let name = field.headers.filename.unwrap(); // This is provided by the client, don't trust it + // This is provided by the client, don't trust it + let name = field.headers.filename.expect("No filename provided"); let file_name = HEXLOWER.encode(&crypto::get_random(vec![0; 10])); let path = base_path.join(&file_name); @@ -393,7 +394,18 @@ fn post_attachment(uuid: String, data: Data, content_type: &ContentType, headers .size_limit(None) .with_path(path) { SaveResult::Full(SavedData::File(_, size)) => size as i32, - _ => return + SaveResult::Full(other) => { + println!("Attachment is not a file: {:?}", other); + return; + }, + SaveResult::Partial(_, reason) => { + println!("Partial result: {:?}", reason); + return; + }, + SaveResult::Error(e) => { + println!("Error: {:?}", e); + return; + } }; let attachment = Attachment::new(file_name, cipher.uuid.clone(), name, size);