Skip to content

Commit e8d0409

Browse files
Corrected an issue with not all lint sources being considered correctly during filtering (#934)
1 parent 80afcba commit e8d0409

File tree

2 files changed

+35
-9
lines changed

2 files changed

+35
-9
lines changed

v3/lint/registration.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -253,11 +253,20 @@ func (r *registryImpl) BySource(s LintSource) []*Lint {
253253
// Sources returns a SourceList of registered LintSources. The list is not
254254
// sorted but can be sorted by the caller with sort.Sort() if required.
255255
func (r *registryImpl) Sources() SourceList {
256+
set := map[LintSource]struct{}{}
257+
for _, source := range r.certificateLints.Sources() {
258+
set[source] = struct{}{}
259+
}
260+
for _, source := range r.revocationListLints.Sources() {
261+
set[source] = struct{}{}
262+
}
263+
for _, source := range r.ocspResponseLints.Sources() {
264+
set[source] = struct{}{}
265+
}
256266
var sources SourceList
257-
258-
sources = append(sources, r.certificateLints.Sources()...)
259-
sources = append(sources, r.revocationListLints.Sources()...)
260-
sources = append(sources, r.ocspResponseLints.Sources()...)
267+
for source := range set {
268+
sources = append(sources, source)
269+
}
261270
return sources
262271
}
263272

v3/lint/source.go

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,20 @@ func (s *LintSource) UnmarshalJSON(data []byte) error {
5353
}
5454

5555
switch LintSource(throwAway) {
56-
case RFC8813, RFC5280, RFC5480, RFC5891, CABFBaselineRequirements, CABFEVGuidelines, CABFSMIMEBaselineRequirements, MozillaRootStorePolicy, AppleRootStorePolicy, Community, EtsiEsi, RFC6962:
56+
case RFC3279,
57+
RFC5280,
58+
RFC5480,
59+
RFC5891,
60+
RFC6962,
61+
RFC8813,
62+
CABFBaselineRequirements,
63+
CABFCSBaselineRequirements,
64+
CABFSMIMEBaselineRequirements,
65+
CABFEVGuidelines,
66+
MozillaRootStorePolicy,
67+
AppleRootStorePolicy,
68+
Community,
69+
EtsiEsi:
5770
*s = LintSource(throwAway)
5871
return nil
5972
default:
@@ -71,28 +84,32 @@ func (s *LintSource) FromString(src string) {
7184
// Trim space and try to match a known value
7285
src = strings.TrimSpace(src)
7386
switch LintSource(src) {
87+
case RFC3279:
88+
*s = RFC3279
7489
case RFC5280:
7590
*s = RFC5280
7691
case RFC5480:
7792
*s = RFC5480
7893
case RFC5891:
7994
*s = RFC5891
95+
case RFC6962:
96+
*s = RFC6962
8097
case RFC8813:
8198
*s = RFC8813
8299
case CABFBaselineRequirements:
83100
*s = CABFBaselineRequirements
84-
case CABFEVGuidelines:
85-
*s = CABFEVGuidelines
101+
case CABFCSBaselineRequirements:
102+
*s = CABFCSBaselineRequirements
86103
case CABFSMIMEBaselineRequirements:
87104
*s = CABFSMIMEBaselineRequirements
105+
case CABFEVGuidelines:
106+
*s = CABFEVGuidelines
88107
case MozillaRootStorePolicy:
89108
*s = MozillaRootStorePolicy
90109
case AppleRootStorePolicy:
91110
*s = AppleRootStorePolicy
92111
case Community:
93112
*s = Community
94-
case RFC6962:
95-
*s = RFC6962
96113
case EtsiEsi:
97114
*s = EtsiEsi
98115
}

0 commit comments

Comments
 (0)