lint: Fix implicit memory aliasing in for loops in osbuild-worker

This commit is contained in:
Brian C. Lane 2023-09-29 14:37:18 -07:00 committed by Achilleas Koutsou
parent 33f9a6726e
commit b1f021c35e

View file

@ -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)