diff --git a/vendor.mod b/vendor.mod index b864c533da..bcd817732a 100644 --- a/vendor.mod +++ b/vendor.mod @@ -66,7 +66,7 @@ require ( golang.org/x/term v0.45.0 golang.org/x/text v0.41.0 gotest.tools/v3 v3.5.2 - tags.cncf.io/container-device-interface v1.1.0 + tags.cncf.io/container-device-interface v1.1.1 ) require ( diff --git a/vendor.sum b/vendor.sum index 72337adf30..357980d513 100644 --- a/vendor.sum +++ b/vendor.sum @@ -238,5 +238,5 @@ gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q= gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA= pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk= pgregory.net/rapid v1.2.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= -tags.cncf.io/container-device-interface v1.1.0 h1:RnxNhxF1JOu6CJUVpetTYvrXHdxw9j9jFYgZpI+anSY= -tags.cncf.io/container-device-interface v1.1.0/go.mod h1:76Oj0Yqp9FwTx/pySDc8Bxjpg+VqXfDb50cKAXVJ34Q= +tags.cncf.io/container-device-interface v1.1.1 h1:YPwQz4xg8PlQ0yT/baR0BtLpTQROe4l6M1yuRgAu1vc= +tags.cncf.io/container-device-interface v1.1.1/go.mod h1:S1PSJWYPD4Iom0/39mvr/VVFCfG0Yt14j20d0OYrY2M= diff --git a/vendor/modules.txt b/vendor/modules.txt index f71feb45f3..5256179bae 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -574,6 +574,6 @@ gotest.tools/v3/internal/format gotest.tools/v3/internal/source gotest.tools/v3/poll gotest.tools/v3/skip -# tags.cncf.io/container-device-interface v1.1.0 -## explicit; go 1.21 +# tags.cncf.io/container-device-interface v1.1.1 +## explicit; go 1.23 tags.cncf.io/container-device-interface/pkg/parser diff --git a/vendor/tags.cncf.io/container-device-interface/pkg/parser/parser.go b/vendor/tags.cncf.io/container-device-interface/pkg/parser/parser.go index 5325989541..8512e3bad0 100644 --- a/vendor/tags.cncf.io/container-device-interface/pkg/parser/parser.go +++ b/vendor/tags.cncf.io/container-device-interface/pkg/parser/parser.go @@ -83,13 +83,12 @@ func ParseDevice(device string) (string, string, string) { return "", "", device } - parts := strings.SplitN(device, "=", 2) - if len(parts) != 2 || parts[0] == "" || parts[1] == "" { + qualifier, name, ok := strings.Cut(device, "=") + if !ok || qualifier == "" || name == "" { return "", "", device } - name := parts[1] - vendor, class := ParseQualifier(parts[0]) + vendor, class := ParseQualifier(qualifier) if vendor == "" { return "", "", device } @@ -105,11 +104,11 @@ func ParseDevice(device string) (string, string, string) { // If parsing fails, an empty vendor and the class set to the // verbatim input is returned. func ParseQualifier(kind string) (string, string) { - parts := strings.SplitN(kind, "/", 2) - if len(parts) != 2 || parts[0] == "" || parts[1] == "" { + qualifier, value, ok := strings.Cut(kind, "/") + if !ok || qualifier == "" || value == "" { return "", kind } - return parts[0], parts[1] + return qualifier, value } // ValidateVendorName checks the validity of a vendor name. @@ -150,6 +149,9 @@ func validateVendorOrClassName(name string) error { if !IsLetter(rune(name[0])) { return fmt.Errorf("%q, should start with letter", name) } + if len(name) == 1 { + return nil + } for _, c := range string(name[1 : len(name)-1]) { switch { case IsAlphaNumeric(c):