]> source.dussan.org Git - jgit.git/commitdiff
[errorprone] Fix wrong comparison which always evaluated to false 58/1176058/1
authorMatthias Sohn <matthias.sohn@sap.com>
Fri, 15 Sep 2023 09:48:05 +0000 (11:48 +0200)
committerMatthias Sohn <matthias.sohn@sap.com>
Tue, 13 Feb 2024 12:56:25 +0000 (13:56 +0100)
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/GraphObjectIndex.java:59:
error: [ComparisonOutOfRange] ints may have a value in the range
-2147483648 to 2147483647; therefore, this comparison to
Integer.MAX_VALUE will always evaluate to false
if (table[k] > Integer.MAX_VALUE) {
             ^

See https://errorprone.info/bugpattern/ComparisonOutOfRange

We need to check if variable `uint` of type `long` exceeds the maximum
possible int value before casting it to `int` below.

This was introduced in Ib5c0d6678cb242870a0f5841bd413ad3885e95f6

Change-Id: I675d594f523084be4c1678328cc343065e32d998
(cherry picked from commit 916200e278ebeaa2602b5dc23143c8eedf11858b)

org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/GraphObjectIndex.java

index 22b4011f9fd491a1d6741569452718e4db36415d..a15602a168cac48b40709a6287142bd35787434d 100644 (file)
@@ -56,7 +56,7 @@ class GraphObjectIndex {
                long uint32;
                for (int k = 0; k < table.length; k++) {
                        uint32 = NB.decodeUInt32(oidFanout, k * 4);
-                       if (table[k] > Integer.MAX_VALUE) {
+                       if (uint32 > Integer.MAX_VALUE) {
                                throw new CommitGraphFormatException(
                                                JGitText.get().commitGraphFileIsTooLargeForJgit);
                        }