versionfmt/dpkg: remove leading digit requirement
This is not strictly a requirement and affects some tracked Alpine Linux packages.
This commit is contained in:
parent
c8622d5f34
commit
1e9f14ae33
@ -96,10 +96,6 @@ func newVersion(str string) (version, error) {
|
|||||||
return version{}, errors.New("No version")
|
return version{}, errors.New("No version")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !unicode.IsDigit(rune(v.version[0])) {
|
|
||||||
return version{}, errors.New("version does not start with digit")
|
|
||||||
}
|
|
||||||
|
|
||||||
for i := 0; i < len(v.version); i = i + 1 {
|
for i := 0; i < len(v.version); i = i + 1 {
|
||||||
r := rune(v.version[i])
|
r := rune(v.version[i])
|
||||||
if !unicode.IsDigit(r) && !unicode.IsLetter(r) && !containsRune(versionAllowedSymbols, r) {
|
if !unicode.IsDigit(r) && !unicode.IsLetter(r) && !containsRune(versionAllowedSymbols, r) {
|
||||||
|
@ -70,8 +70,10 @@ func TestParse(t *testing.T) {
|
|||||||
// Test invalid characters in epoch
|
// Test invalid characters in epoch
|
||||||
{"a:0-0", version{}, true},
|
{"a:0-0", version{}, true},
|
||||||
{"A:0-0", version{}, true},
|
{"A:0-0", version{}, true},
|
||||||
// Test version not starting with a digit
|
// Test version not starting with a digit.
|
||||||
{"0:abc3-0", version{}, true},
|
// While recommended by the specification, this is not strictly required and
|
||||||
|
// at least one vulnerable Alpine package deviates from this scheme.
|
||||||
|
{"0:abc3-0", version{epoch: 0, version: "abc3", revision: "0"}, false},
|
||||||
}
|
}
|
||||||
for _, c := range cases {
|
for _, c := range cases {
|
||||||
v, err := newVersion(c.str)
|
v, err := newVersion(c.str)
|
||||||
|
Loading…
Reference in New Issue
Block a user