Skip to content

解析packet出错 #53

@ClarkMiaguo

Description

@ClarkMiaguo

在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, 至少这样不至于程序崩溃

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions