-
Bug
-
Resolution: Cannot Reproduce
-
P4
-
None
-
7u11
-
x86
-
windows_7
FULL PRODUCT VERSION :
java version "1.7.0_11"
ADDITIONAL OS VERSION INFORMATION :
windows 7 32bit
Linux 2.6.32-358.18.1.el6.x86_64
A DESCRIPTION OF THE PROBLEM :
KeyTab.class will parse the keytab file and get KeyTabEntry info:
private void load(KeyTabInputStream kis)
throws IOException, RealmException {
.............
.............
while (kis.available() > 0) {
entryLength = kis.readEntryLength();
entry = kis.readEntry(entryLength, kt_vno);
if (DEBUG) {
System.out.println(">>> KeyTab: load() entry length: " +
entryLength + "; type: " +
(entry != null? entry.keyType : 0));
}
if (entry != null)
entries.addElement(entry);
}
}
In some scenarios kis.available() will always return positive number(Integer.MAX_VALUE)ï¼never exit the while loop.
consider this scenarios as folows:
1. load corrupt keytab file
2. after read(), reached the end of file
3. call skip()
4. kis.available() will always return Integer.MAX_VALUE
REPRODUCIBILITY :
This bug can be reproduced always.
java version "1.7.0_11"
ADDITIONAL OS VERSION INFORMATION :
windows 7 32bit
Linux 2.6.32-358.18.1.el6.x86_64
A DESCRIPTION OF THE PROBLEM :
KeyTab.class will parse the keytab file and get KeyTabEntry info:
private void load(KeyTabInputStream kis)
throws IOException, RealmException {
.............
.............
while (kis.available() > 0) {
entryLength = kis.readEntryLength();
entry = kis.readEntry(entryLength, kt_vno);
if (DEBUG) {
System.out.println(">>> KeyTab: load() entry length: " +
entryLength + "; type: " +
(entry != null? entry.keyType : 0));
}
if (entry != null)
entries.addElement(entry);
}
}
In some scenarios kis.available() will always return positive number(Integer.MAX_VALUE)ï¼never exit the while loop.
consider this scenarios as folows:
1. load corrupt keytab file
2. after read(), reached the end of file
3. call skip()
4. kis.available() will always return Integer.MAX_VALUE
REPRODUCIBILITY :
This bug can be reproduced always.