mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-09-26 02:30:50 -04:00
Don't reuse backup versions
Since we don't actually delete the keys, just mark the versions as deleted in the db rather than actually deleting them, then we won't reuse versions. Fixes https://github.com/vector-im/riot-web/issues/7448
This commit is contained in:
parent
bc74925c5b
commit
497444f1fd
2 changed files with 9 additions and 3 deletions
|
@ -193,7 +193,8 @@ class EndToEndRoomKeyStore(SQLBaseStore):
|
|||
@staticmethod
|
||||
def _get_current_version(txn, user_id):
|
||||
txn.execute(
|
||||
"SELECT MAX(version) FROM e2e_room_keys_versions WHERE user_id=?",
|
||||
"SELECT MAX(version) FROM e2e_room_keys_versions "
|
||||
"WHERE user_id=? AND deleted=0",
|
||||
(user_id,)
|
||||
)
|
||||
row = txn.fetchone()
|
||||
|
@ -226,6 +227,7 @@ class EndToEndRoomKeyStore(SQLBaseStore):
|
|||
keyvalues={
|
||||
"user_id": user_id,
|
||||
"version": this_version,
|
||||
"deleted": 0,
|
||||
},
|
||||
retcols=(
|
||||
"version",
|
||||
|
@ -300,13 +302,16 @@ class EndToEndRoomKeyStore(SQLBaseStore):
|
|||
else:
|
||||
this_version = version
|
||||
|
||||
return self._simple_delete_one_txn(
|
||||
return self._simple_update_one_txn(
|
||||
txn,
|
||||
table="e2e_room_keys_versions",
|
||||
keyvalues={
|
||||
"user_id": user_id,
|
||||
"version": this_version,
|
||||
},
|
||||
updatevalues={
|
||||
"deleted": 1,
|
||||
}
|
||||
)
|
||||
|
||||
return self.runInteraction(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue