From b1f021c35ec4bb0e328099c1649eaa5746ff1ace Mon Sep 17 00:00:00 2001 From: "Brian C. Lane" Date: Fri, 29 Sep 2023 14:37:18 -0700 Subject: [PATCH] lint: Fix implicit memory aliasing in for loops in osbuild-worker --- cmd/osbuild-worker/jobimpl-osbuild.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/cmd/osbuild-worker/jobimpl-osbuild.go b/cmd/osbuild-worker/jobimpl-osbuild.go index 13e669af5..e8072247b 100644 --- a/cmd/osbuild-worker/jobimpl-osbuild.go +++ b/cmd/osbuild-worker/jobimpl-osbuild.go @@ -465,9 +465,10 @@ func (impl *OSBuildJobImpl) Run(job worker.Job) error { for _, jobTarget := range jobArgs.Targets { var targetResult *target.TargetResult + artifact := jobTarget.OsbuildArtifact switch targetOptions := jobTarget.Options.(type) { case *target.WorkerServerTargetOptions: - targetResult = target.NewWorkerServerTargetResult(&jobTarget.OsbuildArtifact) + targetResult = target.NewWorkerServerTargetResult(&artifact) var f *os.File imagePath := path.Join(outputDirectory, jobTarget.OsbuildArtifact.ExportName, jobTarget.OsbuildArtifact.ExportFilename) f, err = os.Open(imagePath) @@ -483,7 +484,7 @@ func (impl *OSBuildJobImpl) Run(job worker.Job) error { } case *target.VMWareTargetOptions: - targetResult = target.NewVMWareTargetResult(&jobTarget.OsbuildArtifact) + targetResult = target.NewVMWareTargetResult(&artifact) credentials := vmware.Credentials{ Username: targetOptions.Username, Password: targetOptions.Password, @@ -537,7 +538,7 @@ func (impl *OSBuildJobImpl) Run(job worker.Job) error { } case *target.AWSTargetOptions: - targetResult = target.NewAWSTargetResult(nil, &jobTarget.OsbuildArtifact) + targetResult = target.NewAWSTargetResult(nil, &artifact) a, err := impl.getAWS(targetOptions.Region, targetOptions.AccessKeyID, targetOptions.SecretAccessKey, targetOptions.SessionToken) if err != nil { targetResult.TargetError = clienterrors.WorkerClientError(clienterrors.ErrorInvalidConfig, err.Error(), nil) @@ -594,7 +595,7 @@ func (impl *OSBuildJobImpl) Run(job worker.Job) error { } case *target.AWSS3TargetOptions: - targetResult = target.NewAWSS3TargetResult(nil, &jobTarget.OsbuildArtifact) + targetResult = target.NewAWSS3TargetResult(nil, &artifact) a, bucket, err := impl.getAWSForS3Target(targetOptions) if err != nil { targetResult.TargetError = clienterrors.WorkerClientError(clienterrors.ErrorInvalidConfig, err.Error(), nil) @@ -614,7 +615,7 @@ func (impl *OSBuildJobImpl) Run(job worker.Job) error { targetResult.Options = &target.AWSS3TargetResultOptions{URL: url} case *target.AzureTargetOptions: - targetResult = target.NewAzureTargetResult(&jobTarget.OsbuildArtifact) + targetResult = target.NewAzureTargetResult(&artifact) azureStorageClient, err := azure.NewStorageClient(targetOptions.StorageAccount, targetOptions.StorageAccessKey) if err != nil { targetResult.TargetError = clienterrors.WorkerClientError(clienterrors.ErrorInvalidConfig, err.Error(), nil) @@ -642,7 +643,7 @@ func (impl *OSBuildJobImpl) Run(job worker.Job) error { } case *target.GCPTargetOptions: - targetResult = target.NewGCPTargetResult(nil, &jobTarget.OsbuildArtifact) + targetResult = target.NewGCPTargetResult(nil, &artifact) ctx := context.Background() g, err := impl.getGCP(targetOptions.Credentials) @@ -707,7 +708,7 @@ func (impl *OSBuildJobImpl) Run(job worker.Job) error { } case *target.AzureImageTargetOptions: - targetResult = target.NewAzureImageTargetResult(nil, &jobTarget.OsbuildArtifact) + targetResult = target.NewAzureImageTargetResult(nil, &artifact) ctx := context.Background() if impl.AzureConfig.Creds == nil { @@ -837,7 +838,7 @@ func (impl *OSBuildJobImpl) Run(job worker.Job) error { } case *target.KojiTargetOptions: - targetResult = target.NewKojiTargetResult(nil, &jobTarget.OsbuildArtifact) + targetResult = target.NewKojiTargetResult(nil, &artifact) kojiServerURL, err := url.Parse(targetOptions.Server) if err != nil { targetResult.TargetError = clienterrors.WorkerClientError(clienterrors.ErrorInvalidTargetConfig, fmt.Sprintf("failed to parse Koji server URL: %v", err), nil) @@ -955,7 +956,7 @@ func (impl *OSBuildJobImpl) Run(job worker.Job) error { } case *target.OCITargetOptions: - targetResult = target.NewOCITargetResult(nil, &jobTarget.OsbuildArtifact) + targetResult = target.NewOCITargetResult(nil, &artifact) // create an ociClient uploader with a valid storage client var ociClient oci.Client ociClient, err = impl.getOCI(oci.ClientParams{ @@ -1016,7 +1017,7 @@ func (impl *OSBuildJobImpl) Run(job worker.Job) error { logWithId.Info("[OCI] 🎉 Image uploaded and registered!") targetResult.Options = &target.OCITargetResultOptions{ImageID: imageID} case *target.OCIObjectStorageTargetOptions: - targetResult = target.NewOCIObjectStorageTargetResult(nil, &jobTarget.OsbuildArtifact) + targetResult = target.NewOCIObjectStorageTargetResult(nil, &artifact) // create an ociClient uploader with a valid storage client ociClient, err := impl.getOCI(oci.ClientParams{ User: targetOptions.User, @@ -1065,7 +1066,7 @@ func (impl *OSBuildJobImpl) Run(job worker.Job) error { logWithId.Info("[OCI] 🎉 Image uploaded and pre-authenticated request generated!") targetResult.Options = &target.OCIObjectStorageTargetResultOptions{URL: uri} case *target.ContainerTargetOptions: - targetResult = target.NewContainerTargetResult(nil, &jobTarget.OsbuildArtifact) + targetResult = target.NewContainerTargetResult(nil, &artifact) destination := jobTarget.ImageName logWithId.Printf("[container] 📦 Preparing upload to '%s'", destination)