sys-apps/ignition: pull akamai patch

this pull a fix for Akamai

Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
This commit is contained in:
Mathieu Tortuyaux 2024-06-24 16:50:31 +02:00
parent 646deae89f
commit 4248ce2201
No known key found for this signature in database
GPG Key ID: AC5CCFB52545D9B8
3 changed files with 49 additions and 0 deletions

View File

@ -0,0 +1,48 @@
From c39e78052f563bbbf6ed47c4ddab597562effe87 Mon Sep 17 00:00:00 2001
From: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
Date: Mon, 24 Jun 2024 16:38:09 +0200
Subject: [PATCH] akamai: fix base64 decoding
trailing \x00 character was making Ignition to fail parsing the config.
It is not always the case, that is why we did not catch it earlier: when
there is no padding in the base64 payload, everything was working.
https://pkg.go.dev/encoding/base64#Encoding.Decode
Signed-off-by: Mathieu Tortuyaux <mtortuyaux@microsoft.com>
---
docs/release-notes.md | 1 +
internal/providers/akamai/akamai.go | 5 +++--
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/docs/release-notes.md b/docs/release-notes.md
index a73ea2a7c..c2a35dca9 100644
--- a/docs/release-notes.md
+++ b/docs/release-notes.md
@@ -14,6 +14,7 @@ nav_order: 9
### Bug fixes
+- Fixed Akamai Ignition base64 decoding
## Ignition 2.19.0 (2024-06-05)
diff --git a/internal/providers/akamai/akamai.go b/internal/providers/akamai/akamai.go
index c7debf3b1..648be3bee 100644
--- a/internal/providers/akamai/akamai.go
+++ b/internal/providers/akamai/akamai.go
@@ -86,11 +86,12 @@ func fetchConfig(f *resource.Fetcher) (types.Config, report.Report, error) {
// The Linode Metadata Service requires userdata to be base64-encoded
// when it is uploaded, so we will have to decode the response.
data := make([]byte, base64.StdEncoding.DecodedLen(len(encoded)))
- if _, err := base64.StdEncoding.Decode(data, encoded); err != nil {
+ n, err := base64.StdEncoding.Decode(data, encoded)
+ if err != nil {
return types.Config{}, report.Report{}, fmt.Errorf("decode base64: %w", err)
}
- return util.ParseConfig(f.Logger, data)
+ return util.ParseConfig(f.Logger, data[:n])
}
// defaultTokenTTL is the time-to-live (TTL; in seconds) for an authorization

View File

@ -61,6 +61,7 @@ PATCHES=(
"${FILESDIR}/0019-usr-share-oem-oem.patch" "${FILESDIR}/0019-usr-share-oem-oem.patch"
"${FILESDIR}/0020-internal-exec-stages-mount-Mount-oem.patch" "${FILESDIR}/0020-internal-exec-stages-mount-Mount-oem.patch"
"${FILESDIR}/0021-sgdisk-Run-partprobe-after-partition-changes.patch" "${FILESDIR}/0021-sgdisk-Run-partprobe-after-partition-changes.patch"
"${FILESDIR}/0022-akamai-fix-base64-decoding.patch"
) )
src_compile() { src_compile() {