]> source.dussan.org Git - jgit.git/commitdiff
Avoid sign extension when comparing mtime with Instant#getEpochSecond 14/148014/1
authorMatthias Sohn <matthias.sohn@sap.com>
Tue, 20 Aug 2019 22:29:45 +0000 (00:29 +0200)
committerMatthias Sohn <matthias.sohn@sap.com>
Tue, 20 Aug 2019 22:29:45 +0000 (00:29 +0200)
Ensure we use the same type when comparing seconds since the epoch.

This does not prevent that in 2038 timestamps in seconds since the epoch
stored in a 32 bit integer will overflow. Integer.MAX_VALUE translates
to 2038-01-19T03:14:07Z. After this date we'll have an issue since we
store seconds since the epoch in a 32 bit integer in some places.

Bug: 319142
Change-Id: If0c03003d40b480f044686e2f7a2f62c9f4e2fe1
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEntry.java

index d2a59c131098ce25edcb298556e4a6353cbbd6cf..b118fd6bc942a6c73767d6f319aeb7adc9258650 100644 (file)
@@ -378,7 +378,7 @@ public class DirCacheEntry {
                //
                final int base = infoOffset + P_MTIME;
                final int mtime = NB.decodeInt32(info, base);
-               if (smudge.getEpochSecond() == mtime) {
+               if ((int) smudge.getEpochSecond() == mtime) {
                        return smudge.getNano() <= NB.decodeInt32(info, base + 4);
                }
                return false;