summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/db/models/cipher.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/db/models/cipher.rs b/src/db/models/cipher.rs
index 1c6e499d..d0a95d3c 100644
--- a/src/db/models/cipher.rs
+++ b/src/db/models/cipher.rs
@@ -190,11 +190,20 @@ impl Cipher {
.map(|d| {
// Check every password history item if they are valid and return it.
// If a password field has the type `null` skip it, it breaks newer Bitwarden clients
+ // A second check is done to verify the lastUsedDate exists and is a string, if not the epoch start time will be used
d.into_iter()
.filter_map(|d| match d.data.get("password") {
Some(p) if p.is_string() => Some(d.data),
_ => None,
})
+ .map(|d| match d.get("lastUsedDate") {
+ Some(l) if l.is_string() => d,
+ _ => {
+ let mut d = d;
+ d["lastUsedDate"] = json!("1970-01-01T00:00:00.000Z");
+ d
+ }
+ })
.collect()
})
.unwrap_or_default();