Skip to content

Commit 8230ba2

Browse files
authored
fix: improve VulnerableSoftware comparison (#8031)
1 parent c4696c0 commit 8230ba2

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

core/src/main/java/org/owasp/dependencycheck/dependency/VulnerableSoftware.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,25 @@ public VulnerableSoftware(Part part, String vendor, String product, String versi
124124
}
125125
//CSON: ParameterNumber
126126

127+
/**
128+
* Normalizes null and empty strings to null for consistent comparison.
129+
* @param s the string to normalize
130+
* @return null if s is null or empty, otherwise s
131+
*/
132+
private static String normalizeForComparison(String s) {
133+
return (s == null || s.isEmpty()) ? null : s;
134+
}
135+
127136
@Override
128137
public int compareTo(@NotNull ICpe o) {
129138
if (o instanceof VulnerableSoftware) {
130139
final VulnerableSoftware other = (VulnerableSoftware) o;
131140
return new CompareToBuilder()
132141
.appendSuper(super.compareTo(other))
133-
.append(versionStartIncluding, other.versionStartIncluding)
134-
.append(versionStartExcluding, other.versionStartExcluding)
135-
.append(versionEndIncluding, other.versionEndIncluding)
136-
.append(versionEndExcluding, other.versionEndExcluding)
142+
.append(normalizeForComparison(versionStartIncluding), normalizeForComparison(other.versionStartIncluding))
143+
.append(normalizeForComparison(versionStartExcluding), normalizeForComparison(other.versionStartExcluding))
144+
.append(normalizeForComparison(versionEndIncluding), normalizeForComparison(other.versionEndIncluding))
145+
.append(normalizeForComparison(versionEndExcluding), normalizeForComparison(other.versionEndExcluding))
137146
.append(this.vulnerable, other.vulnerable)
138147
.build();
139148
} else if (o instanceof Cpe) {

0 commit comments

Comments
 (0)