hprose / hprose-golang

Hprose is a cross-language RPC. This project is Hprose for Golang.
MIT License
1.26k stars 205 forks source link

rpc.recvData异常请求时分配slice过大会造成内存泄露 #90

Closed lanfengye2008 closed 2 years ago

lanfengye2008 commented 5 years ago

文件为:hprose-golang/rpc/socket_common.go line:100 当构建异常包时,会出现makeslice超过9位数的情况,造成fatal error:runtime:out of memory

问题复现:随机发送几个超大的十六进制报文,长度超过1000,几次之后会发生内存泄露,且golang GC无法有效的回收

andot commented 2 years ago

3.0 增加了对请求和响应增加了 crc 校验,可以避免这种无效请求造成的内存溢出问题了。