From 693c7af4d96c1c67eb9f1d613b176b07c1400792 Mon Sep 17 00:00:00 2001 From: Jan Losinski Date: Tue, 29 Oct 2024 12:56:12 +0100 Subject: [PATCH] fix(artifactory): ignore extensions without a manifest This ignores extensions where the manifest download from artifactory failed instead of crashing the process with a segfault. It fixes #68 --- storage/artifactory.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/storage/artifactory.go b/storage/artifactory.go index a8523a5..a20c331 100644 --- a/storage/artifactory.go +++ b/storage/artifactory.go @@ -391,7 +391,7 @@ func (s *Artifactory) WalkExtensions(ctx context.Context, fn func(manifest *VSIX return err } else if err != nil { id := ExtensionID(ext.publisher, ext.name, ext.versions[0].Version) - s.logger.Error(ctx, "Unable to read extension manifest", slog.Error(err), + s.logger.Error(ctx, "Unable to read extension manifest; extension will be ignored", slog.Error(err), slog.F("id", id), slog.F("targetPlatform", ext.versions[0].TargetPlatform)) } else { @@ -405,6 +405,9 @@ func (s *Artifactory) WalkExtensions(ctx context.Context, fn func(manifest *VSIX return err } for _, ext := range extensions { + if ext.manifest == nil { + continue + } if err = fn(ext.manifest, ext.versions); err != nil { return err }