Browse Source

Fix endless loop in ObjectChecker for MacOS

Bug: 477090
Change-Id: I0ba416f1cc172a835dd2723ff7fa904597ffd097
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
stable-4.1
Christian Halstrick 9 years ago committed by Matthias Sohn
parent
commit
f4596284a0
  1. 11
      org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ObjectCheckerTest.java
  2. 3
      org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectChecker.java

11
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ObjectCheckerTest.java

@ -1809,6 +1809,17 @@ public class ObjectCheckerTest {
} }
} }
@Test
public void testBug477090() throws CorruptObjectException {
checker.setSafeForMacOS(true);
final byte[] bytes = {
// U+221E 0xe2889e INFINITY ∞
(byte) 0xe2, (byte) 0x88, (byte) 0x9e,
// .html
0x2e, 0x68, 0x74, 0x6d, 0x6c };
checker.checkPathSegment(bytes, 0, bytes.length);
}
@Test @Test
public void testRejectDotAtEndOnWindows() { public void testRejectDotAtEndOnWindows() {
checker.setSafeForWindows(true); checker.setSafeForWindows(true);

3
org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectChecker.java

@ -618,8 +618,9 @@ public class ObjectChecker {
default: default:
return false; return false;
} }
default:
return false;
} }
break;
case (byte) 0xef: // http://www.utf8-chartable.de/unicode-utf8-table.pl?start=65024 case (byte) 0xef: // http://www.utf8-chartable.de/unicode-utf8-table.pl?start=65024
checkTruncatedIgnorableUTF8(raw, ptr, end); checkTruncatedIgnorableUTF8(raw, ptr, end);
// U+FEFF 0xefbbbf ZERO WIDTH NO-BREAK SPACE // U+FEFF 0xefbbbf ZERO WIDTH NO-BREAK SPACE

Loading…
Cancel
Save