From 46efefbf446a1b3d195cf30eab0677e9f734f3e3 Mon Sep 17 00:00:00 2001 From: Chris Williams Date: Fri, 15 Mar 2024 23:38:40 -0400 Subject: [PATCH] run: Ignore leftover eol-rebase data dir symlink If the current app data dir is removed, flatpak would try to migrate the symlink that it had previously created, creating a symlink loop. Fixes: #5668 (cherry picked from commit d900529a2443a29e02606a59bc1bdc0502dec961) --- common/flatpak-run.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/common/flatpak-run.c b/common/flatpak-run.c index 5e8000a5..31a53743 100644 --- a/common/flatpak-run.c +++ b/common/flatpak-run.c @@ -4386,6 +4386,12 @@ flatpak_run_app (FlatpakDecomposed *app_ref, { do_migrate = FALSE; /* Don't migrate older things, they are likely symlinks to this dir */ + /* Don't migrate a symlink pointing to the new data dir. It was likely left over + * from a previous migration and would end up pointing to itself */ + if (g_file_info_get_is_symlink (previous_app_id_dir_info) && + g_strcmp0 (g_file_info_get_symlink_target (previous_app_id_dir_info), app_id) == 0) + break; + if (!flatpak_file_rename (previous_app_id_dir, real_app_id_dir, cancellable, &local_error)) { g_warning (_("Failed to migrate old app data directory %s to new name %s: %s"),