From deeaf2ba2e332dc9817eecaf688c836abfb54a73 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Sat, 15 Apr 2023 15:28:47 -0400 Subject: [PATCH] Put guard against self-foreign-keys causing infinite recursion. --- .../thoughtcrime/securesms/backup/FullBackupExporter.java | 5 ++++- .../thoughtcrime/securesms/backup/FullBackupImporter.java | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupExporter.java b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupExporter.java index c70acead5e..fd3f527fe9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupExporter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupExporter.java @@ -332,7 +332,10 @@ public class FullBackupExporter extends FullBackupBase { Map> dependsOn = new LinkedHashMap<>(); for (String table : tables) { - dependsOn.put(table, SqlUtil.getForeignKeyDependencies(input, table)); + Set dependencies = SqlUtil.getForeignKeyDependencies(input, table); + dependencies.remove(table); + + dependsOn.put(table, dependencies); } for (String table : tables) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.java b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.java index 9462de4504..bdef84e9cb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/FullBackupImporter.java @@ -324,7 +324,10 @@ public class FullBackupImporter extends FullBackupBase { Map> dependsOn = new LinkedHashMap<>(); for (String table : tables) { - dependsOn.put(table, SqlUtil.getForeignKeyDependencies(input, table)); + Set dependencies = SqlUtil.getForeignKeyDependencies(input, table); + dependencies.remove(table); + + dependsOn.put(table, dependencies); } for (String table : tables) {