Fix implicit memory aliasing in for loop

Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
Evan Lezar
2023-08-25 17:50:43 +02:00
parent 1b16b341dd
commit 709e27bf4b
11 changed files with 14 additions and 0 deletions

View File

@@ -39,6 +39,7 @@ func (d dedupe) Transform(spec *specs.Spec) error {
}
var updatedDevices []specs.Device
for _, device := range spec.Devices {
device := device
if err := d.transformEdits(&device.ContainerEdits); err != nil {
return err
}

View File

@@ -111,6 +111,7 @@ func mergeDeviceSpecs(deviceSpecs []specs.Device, mergedDeviceName string) (*spe
mergedEdits := edits.NewContainerEdits()
for _, d := range deviceSpecs {
d := d
edit := cdi.ContainerEdits{
ContainerEdits: &d.ContainerEdits,
}

View File

@@ -39,6 +39,7 @@ func (r remove) Transform(spec *specs.Spec) error {
}
for _, device := range spec.Devices {
device := device
if err := r.transformEdits(&device.ContainerEdits); err != nil {
return fmt.Errorf("failed to remove edits from device %q: %w", device.Name, err)
}

View File

@@ -54,6 +54,7 @@ func (t rootTransformer) Transform(spec *specs.Spec) error {
}
for _, d := range spec.Devices {
d := d
if err := t.applyToEdits(&d.ContainerEdits); err != nil {
return fmt.Errorf("failed to apply root transform to device %s: %w", d.Name, err)
}

View File

@@ -44,6 +44,7 @@ func (d sorter) Transform(spec *specs.Spec) error {
}
var updatedDevices []specs.Device
for _, device := range spec.Devices {
device := device
if err := d.transformEdits(&device.ContainerEdits); err != nil {
return err
}