@@ -46,17 +46,18 @@ func RetryAttempts(attempts uint) ClientOption {
4646}
4747
4848const (
49- vmUniqueIDProperty = "vmId"
50- imdsComputePath = "/metadata/instance/compute"
51- imdsNetworkPath = "/metadata/instance/network"
52- imdsVersionsPath = "/metadata/versions"
53- imdsDefaultAPIVersion = "api-version=2021-01-01"
54- imdsNCDetailsVersion = "api-version=2025-07-24"
55- imdsFormatJSON = "format=json"
56- metadataHeaderKey = "Metadata"
57- metadataHeaderValue = "true"
58- defaultRetryAttempts = 3
59- defaultIMDSEndpoint = "http://169.254.169.254"
49+ vmUniqueIDProperty = "vmId"
50+ imdsComputePath = "/metadata/instance/compute"
51+ imdsNetworkPath = "/metadata/instance/network"
52+ imdsVersionsPath = "/metadata/versions"
53+ imdsDefaultAPIVersion = "api-version=2021-01-01"
54+ imdsNCDetailsVersion = "api-version=2025-07-24"
55+ imdsMACAddressStringLength = 12 // 6 bytes in hex equals 12 characters
56+ imdsFormatJSON = "format=json"
57+ metadataHeaderKey = "Metadata"
58+ metadataHeaderValue = "true"
59+ defaultRetryAttempts = 3
60+ defaultIMDSEndpoint = "http://169.254.169.254"
6061)
6162
6263var (
@@ -231,7 +232,7 @@ func (h *HardwareAddr) UnmarshalJSON(data []byte) error {
231232// parseMacAddress is a wrapper around net.ParseMAC to handle Windows MAC address. Windows MAC addresse is a pure hex
232233// dump without delimiter, so we need to add delimiters. This happens when CNS gets MAC address from IMDS.
233234func parseMacAddress (s string ) (net.HardwareAddr , error ) {
234- if ! strings .ContainsAny (s , ":-." ) && len (s )% 2 == 0 {
235+ if ! strings .ContainsAny (s , ":-." ) && len (s ) == imdsMACAddressStringLength {
235236 var sb strings.Builder
236237 for i := 0 ; i < len (s ); i += 2 {
237238 if i > 0 {
0 commit comments