Skip to content

Commit

Permalink
Fix potential ArrayIndexOutOfBoundsException (Fixes hierynomus#426)
Browse files Browse the repository at this point in the history
  • Loading branch information
hierynomus committed Jul 10, 2023
1 parent add0a5d commit 61f398c
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/main/java/com/hierynomus/mssmb/SMB1PacketFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ public SMB1PacketData read(byte[] data) throws Buffer.BufferException, IOExcepti

@Override
public boolean canHandle(byte[] data) {
return data[0] == (byte) 0xFF && data[1] == 'S' && data[2] == 'M' && data[3] == 'B';
return data.length >= 4 && data[0] == (byte) 0xFF && data[1] == 'S' && data[2] == 'M' && data[3] == 'B';
}
}
2 changes: 1 addition & 1 deletion src/main/java/com/hierynomus/mssmb2/SMB2PacketFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,6 @@ public SMB2PacketData read(byte[] data) throws Buffer.BufferException {

@Override
public boolean canHandle(byte[] data) {
return data[0] == (byte) 0xFE && data[1] == 'S' && data[2] == 'M' && data[3] == 'B';
return data.length >= 4 && data[0] == (byte) 0xFE && data[1] == 'S' && data[2] == 'M' && data[3] == 'B';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ public SMB3CompressedPacketData read(byte[] data) throws Buffer.BufferException,

@Override
public boolean canHandle(byte[] data) {
return data[0] == (byte) 0xFC && data[1] == 'S' && data[2] == 'M' && data[3] == 'B';
return data.length >= 4 && data[0] == (byte) 0xFC && data[1] == 'S' && data[2] == 'M' && data[3] == 'B';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ public SMB3EncryptedPacketData read(byte[] data) throws Buffer.BufferException,

@Override
public boolean canHandle(byte[] data) {
return data[0] == (byte) 0xFD && data[1] == 'S' && data[2] == 'M' && data[3] == 'B';
return data.length >= 4 && data[0] == (byte) 0xFD && data[1] == 'S' && data[2] == 'M' && data[3] == 'B';
}
}

0 comments on commit 61f398c

Please sign in to comment.