Fix crash and installation of OCI images

Resolves: RHEL-76958
This commit is contained in:
Jan Grulich 2025-02-05 13:33:07 +01:00
parent 6dd37036a7
commit 43a23a0cde
2 changed files with 102 additions and 1 deletions

View File

@ -0,0 +1,94 @@
commit f0bc60dc0b34669e64d48e723a5e84c0b90b281d
Author: Owen W. Taylor <otaylor@fishsoup.net>
Date: Wed Feb 5 12:29:43 2025 -0500
Pass token to flatpak_image_source_new_remote()
Since flatpak_image_source_new_remote() already tries to load files
from the registry, having a separate flatpak_image_source_set_token()
doesn't work - when the token is set, it's already too late to
be passed along with the initial requests.
diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c
index 26ec176f..a00fe7fa 100644
--- a/common/flatpak-dir.c
+++ b/common/flatpak-dir.c
@@ -1225,12 +1225,10 @@ flatpak_remote_state_new_image_source (FlatpakRemoteState *self,
if (registry_uri == NULL)
return NULL;
- image_source = flatpak_image_source_new_remote (registry_uri, oci_repository, digest, NULL, error);
+ image_source = flatpak_image_source_new_remote (registry_uri, oci_repository, digest, token, NULL, error);
if (image_source == NULL)
return NULL;
- flatpak_image_source_set_token (image_source, token);
-
return g_steal_pointer (&image_source);
}
@@ -6473,6 +6471,9 @@ flatpak_dir_mirror_oci (FlatpakDir *self,
else
image_source = flatpak_remote_state_fetch_image_source (state, self, ref, opt_rev, token, cancellable, error);
+ if (!image_source)
+ return FALSE;
+
flatpak_progress_start_oci_pull (progress);
g_info ("Mirroring OCI image %s", flatpak_image_source_get_digest (image_source));
diff --git a/common/flatpak-image-source-private.h b/common/flatpak-image-source-private.h
index 597a8174..5f9604d8 100644
--- a/common/flatpak-image-source-private.h
+++ b/common/flatpak-image-source-private.h
@@ -45,14 +45,13 @@ FlatpakImageSource *flatpak_image_source_new_local (GFile *file,
FlatpakImageSource *flatpak_image_source_new_remote (const char *uri,
const char *oci_repository,
const char *digest,
+ const char *token,
GCancellable *cancellable,
GError **error);
FlatpakImageSource *flatpak_image_source_new_for_location (const char *location,
GCancellable *cancellable,
GError **error);
-void flatpak_image_source_set_token (FlatpakImageSource *self,
- const char *token);
void flatpak_image_source_set_delta_url (FlatpakImageSource *self,
const char *delta_url);
diff --git a/common/flatpak-image-source.c b/common/flatpak-image-source.c
index a31f1084..1fc0eeb0 100644
--- a/common/flatpak-image-source.c
+++ b/common/flatpak-image-source.c
@@ -180,6 +180,7 @@ FlatpakImageSource *
flatpak_image_source_new_remote (const char *uri,
const char *oci_repository,
const char *digest,
+ const char *token,
GCancellable *cancellable,
GError **error)
{
@@ -189,6 +190,8 @@ flatpak_image_source_new_remote (const char *uri,
if (!registry)
return NULL;
+ flatpak_oci_registry_set_token (registry, token);
+
return flatpak_image_source_new (registry, oci_repository, digest, cancellable, error);
}
@@ -327,13 +330,6 @@ flatpak_image_source_new_for_location (const char *location,
}
}
-void
-flatpak_image_source_set_token (FlatpakImageSource *self,
- const char *token)
-{
- flatpak_oci_registry_set_token (self->registry, token);
-}
-
void
flatpak_image_source_set_delta_url (FlatpakImageSource *self,
const char *delta_url)

View File

@ -12,7 +12,7 @@
Name: flatpak
Version: 1.16.0
Release: 4%{?dist}
Release: 5%{?dist}
Summary: Application deployment framework for desktop apps
License: LGPL-2.1-or-later
@ -44,6 +44,9 @@ Patch3: flatpak-add-support-for-preinstalling-flatpaks.patch
# https://github.com/flatpak/flatpak/pull/6083
Patch4: flatpak-enable-collection-ids-for-oci-remotes.patch
# Fix crash and installatcion of OCI images
Patch5: flatpak-pass-token-to-flatpak-image-source-new-remote.patch
# ostree not on i686 for RHEL 10
# https://github.com/containers/composefs/pull/229#issuecomment-1838735764
%if 0%{?rhel} >= 10
@ -312,6 +315,10 @@ fi
%changelog
* Wed Feb 05 2025 Jan Grulich <jgrulich@redhat.com> - 1.16.0-5
- Fix crash and installatcion of OCI images
Resolves: RHEL-76958
* Thu Jan 23 2025 Zdenek Pytela <zpytela@redhat.com> - 1.16.0-4
- Rebuild with selinux-policy-40.13.23-1
Resolves: RHEL-36741