Skip to content

Commit

Permalink
Merge pull request #2650 from BlackDex/mitigate-mobile-client-uploads
Browse files Browse the repository at this point in the history
Mitigate attachment/send upload issues
  • Loading branch information
dani-garcia committed Jul 27, 2022
2 parents 331f6c0 + abfa868 commit ce9d930
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/api/core/ciphers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -947,6 +947,17 @@ async fn save_attachment(

let mut data = data.into_inner();

// There seems to be a bug somewhere regarding uploading attachments using the Android Client (Maybe iOS too?)
// See: https://github.com/dani-garcia/vaultwarden/issues/2644
// Since all other clients seem to match TempFile::File and not TempFile::Buffered lets catch this and return an error for now.
// We need to figure out how to solve this, but for now it's better to not accept these attachments since they will be broken.
if let TempFile::Buffered {
content: _,
} = &data.data
{
err!("Error reading attachment data. Please try an other client.");
}

if let Some(size_limit) = size_limit {
if data.data.len() > size_limit {
err!("Attachment storage limit exceeded with this file");
Expand Down
11 changes: 11 additions & 0 deletions src/api/core/sends.rs
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,17 @@ async fn post_send_file(data: Form<UploadData<'_>>, headers: Headers, conn: DbCo
err!("Send content is not a file");
}

// There seems to be a bug somewhere regarding uploading attachments using the Android Client (Maybe iOS too?)
// See: https://github.com/dani-garcia/vaultwarden/issues/2644
// Since all other clients seem to match TempFile::File and not TempFile::Buffered lets catch this and return an error for now.
// We need to figure out how to solve this, but for now it's better to not accept these attachments since they will be broken.
if let TempFile::Buffered {
content: _,
} = &data
{
err!("Error reading send file data. Please try an other client.");
}

let size = data.len();
if size > size_limit {
err!("Attachment storage limit exceeded with this file");
Expand Down

0 comments on commit ce9d930

Please sign in to comment.