Browse Source

fix: return Err instead of panic on unknown cipher atype in to_json() (#7068)

`Cipher::to_json()` returns `Result<Value, Error>` but its match arm for
unknown `atype` values called `panic!("Wrong type")` instead of
propagating an error. This means if a cipher with an invalid/unknown type
ends up in the database (via direct DB edits, data migration issues, or
future type additions in the upstream Bitwarden protocol), the entire
server process would crash on the next sync request.

Replace the `panic!` with `err!()` so callers receive a proper `Err` and
can handle or log it gracefully without taking down the server.

Co-authored-by: easonysliu <easonysliu@tencent.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Daniel García <dani-garcia@users.noreply.github.com>
pull/7165/head
eason 2 weeks ago
committed by GitHub
parent
commit
cb46fcb948
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      src/db/models/cipher.rs

2
src/db/models/cipher.rs

@ -403,7 +403,7 @@ impl Cipher {
3 => "card",
4 => "identity",
5 => "sshKey",
_ => panic!("Wrong type"),
_ => err!(format!("Cipher {} has an invalid type {}", self.uuid, self.atype)),
};
json_object[key] = type_data_json;

Loading…
Cancel
Save