From de89a8c827640923d68ab4677803803ee51a3894 Mon Sep 17 00:00:00 2001 From: Daniel Swarbrick Date: Sun, 16 Jul 2023 19:23:44 +0200 Subject: [PATCH] Linode SD: cast InstanceSpec values to int64 to avoid overflows InstanceSpec struct members are untyped integers, so they can overflow on 32-bit arch when bit-shifted left. Signed-off-by: Daniel Swarbrick --- discovery/linode/linode.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/discovery/linode/linode.go b/discovery/linode/linode.go index 12b957514..63213c87b 100644 --- a/discovery/linode/linode.go +++ b/discovery/linode/linode.go @@ -304,10 +304,10 @@ func (d *Discovery) refreshData(ctx context.Context) ([]*targetgroup.Group, erro linodeLabelGroup: model.LabelValue(instance.Group), linodeLabelHypervisor: model.LabelValue(instance.Hypervisor), linodeLabelBackups: model.LabelValue(backupsStatus), - linodeLabelSpecsDiskBytes: model.LabelValue(fmt.Sprintf("%d", instance.Specs.Disk<<20)), - linodeLabelSpecsMemoryBytes: model.LabelValue(fmt.Sprintf("%d", instance.Specs.Memory<<20)), + linodeLabelSpecsDiskBytes: model.LabelValue(fmt.Sprintf("%d", int64(instance.Specs.Disk)<<20)), + linodeLabelSpecsMemoryBytes: model.LabelValue(fmt.Sprintf("%d", int64(instance.Specs.Memory)<<20)), linodeLabelSpecsVCPUs: model.LabelValue(fmt.Sprintf("%d", instance.Specs.VCPUs)), - linodeLabelSpecsTransferBytes: model.LabelValue(fmt.Sprintf("%d", instance.Specs.Transfer<<20)), + linodeLabelSpecsTransferBytes: model.LabelValue(fmt.Sprintf("%d", int64(instance.Specs.Transfer)<<20)), } addr := net.JoinHostPort(publicIPv4, strconv.FormatUint(uint64(d.port), 10))