cluster-client icon indicating copy to clipboard operation
cluster-client copied to clipboard

解析packet出错

Open ClarkMiaguo opened this issue 3 years ago • 1 comments

在clusterClient模式下, 手贱去telnet了下端口,结果程序crash了.

看了下, lib/server.js

if (!header) {
        header = socket.read(24);
        if (!header) {
          return;
        }
      }
      if (!bodyLength) {
        bodyLength = header.readInt32BE(16) + header.readInt32BE(20);
      }

header = socket.read(24)在connection断开后,header是有值的, 根据buffer内的实际长度返回,随后是header.readInt32BE(16) 就可能出现exception, 如RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range. It must be >= 0 and <= 11. Received 16

是不是考虑也判断下header的长度 === 24, 至少这样不至于程序崩溃

ClarkMiaguo avatar Apr 25 '21 07:04 ClarkMiaguo

@gxcsoccer @fengmk2 @atian25

ClarkMiaguo avatar Apr 25 '21 07:04 ClarkMiaguo