mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-25 04:31:52 +08:00
Harden scan robustness and tests
This commit is contained in:
@@ -696,13 +696,9 @@ func classifySMBError(err error) ErrorType {
|
||||
// readSMBMessage 从连接读取NetBIOS消息
|
||||
func readSMBMessage(conn net.Conn) ([]byte, error) {
|
||||
headerBuf := make([]byte, 4)
|
||||
n, err := conn.Read(headerBuf)
|
||||
if err != nil {
|
||||
if _, err := io.ReadFull(conn, headerBuf); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if n != 4 {
|
||||
return nil, fmt.Errorf(i18n.GetText("netbios_header_too_short")+": %d", n)
|
||||
}
|
||||
|
||||
messageLength := int(headerBuf[0])<<24 | int(headerBuf[1])<<16 | int(headerBuf[2])<<8 | int(headerBuf[3])
|
||||
|
||||
@@ -715,13 +711,8 @@ func readSMBMessage(conn net.Conn) ([]byte, error) {
|
||||
}
|
||||
|
||||
messageBuf := make([]byte, messageLength)
|
||||
totalRead := 0
|
||||
for totalRead < messageLength {
|
||||
n, err := conn.Read(messageBuf[totalRead:])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
totalRead += n
|
||||
if _, err := io.ReadFull(conn, messageBuf); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
result := make([]byte, 0, 4+messageLength)
|
||||
|
||||
Reference in New Issue
Block a user