Browse Source

Avoid sign extension when comparing mtime with Instant#getEpochSecond

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>
stable-5.1
Matthias Sohn 5 years ago
parent
commit
c130e5e708
  1. 2
      org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEntry.java

2
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCacheEntry.java vendored

@ -378,7 +378,7 @@ public class DirCacheEntry {
// //
final int base = infoOffset + P_MTIME; final int base = infoOffset + P_MTIME;
final int mtime = NB.decodeInt32(info, base); 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 smudge.getNano() <= NB.decodeInt32(info, base + 4);
} }
return false; return false;

Loading…
Cancel
Save