HTTPCLIENT-1881: Allow truncated NTLM packets to work with this client.
This commit is contained in:
parent
235348eec6
commit
42359353a2
|
@ -270,7 +270,7 @@ final class NTLMEngineImpl implements NTLMEngine {
|
||||||
|
|
||||||
private static int readULong(final byte[] src, final int index) throws NTLMEngineException {
|
private static int readULong(final byte[] src, final int index) throws NTLMEngineException {
|
||||||
if (src.length < index + 4) {
|
if (src.length < index + 4) {
|
||||||
throw new NTLMEngineException("NTLM authentication - buffer too small for DWORD");
|
return 0;
|
||||||
}
|
}
|
||||||
return (src[index] & 0xff) | ((src[index + 1] & 0xff) << 8)
|
return (src[index] & 0xff) | ((src[index + 1] & 0xff) << 8)
|
||||||
| ((src[index + 2] & 0xff) << 16) | ((src[index + 3] & 0xff) << 24);
|
| ((src[index + 2] & 0xff) << 16) | ((src[index + 3] & 0xff) << 24);
|
||||||
|
@ -278,7 +278,7 @@ final class NTLMEngineImpl implements NTLMEngine {
|
||||||
|
|
||||||
private static int readUShort(final byte[] src, final int index) throws NTLMEngineException {
|
private static int readUShort(final byte[] src, final int index) throws NTLMEngineException {
|
||||||
if (src.length < index + 2) {
|
if (src.length < index + 2) {
|
||||||
throw new NTLMEngineException("NTLM authentication - buffer too small for WORD");
|
return 0;
|
||||||
}
|
}
|
||||||
return (src[index] & 0xff) | ((src[index + 1] & 0xff) << 8);
|
return (src[index] & 0xff) | ((src[index + 1] & 0xff) << 8);
|
||||||
}
|
}
|
||||||
|
@ -287,8 +287,7 @@ final class NTLMEngineImpl implements NTLMEngine {
|
||||||
final int length = readUShort(src, index);
|
final int length = readUShort(src, index);
|
||||||
final int offset = readULong(src, index + 4);
|
final int offset = readULong(src, index + 4);
|
||||||
if (src.length < offset + length) {
|
if (src.length < offset + length) {
|
||||||
throw new NTLMEngineException(
|
return new byte[length];
|
||||||
"NTLM authentication - buffer too small for data item");
|
|
||||||
}
|
}
|
||||||
final byte[] buffer = new byte[length];
|
final byte[] buffer = new byte[length];
|
||||||
System.arraycopy(src, offset, buffer, 0, length);
|
System.arraycopy(src, offset, buffer, 0, length);
|
||||||
|
|
Loading…
Reference in New Issue