Skip to content

Commit c625032

Browse files
committed
fix multipart parsing
Signed-off-by: Denys Fedoryshchenko <denys.f@collabora.com>
1 parent 5e5ffa9 commit c625032

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

src/main.rs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -567,8 +567,17 @@ async fn ax_post_file(
567567
let mut upload_result: Option<(StatusCode, Vec<u8>)> = None;
568568
let mut buffered_file: Option<tempfile::NamedTempFile> = None;
569569

570-
while let Some(field) = multipart.next_field().await.unwrap() {
571-
let name = field.name().unwrap().to_string();
570+
while let Some(field) = match multipart.next_field().await {
571+
Ok(field) => field,
572+
Err(e) => {
573+
eprintln!("Error reading multipart field: {:?}", e);
574+
return (StatusCode::BAD_REQUEST, b"Malformed multipart request".to_vec());
575+
}
576+
} {
577+
let name = match field.name() {
578+
Some(name) => name.to_string(),
579+
None => continue,
580+
};
572581
let filename = field.file_name().map(|f| f.to_string());
573582

574583
if name == "path" {

0 commit comments

Comments
 (0)