瀏覽代碼

Free data when instance is invalid on recv callback

Paul-Louis Ageneau 5 年之前
父節點
當前提交
0593566ba6
共有 1 個文件被更改,包括 3 次插入1 次删除
  1. 3 1
      src/sctptransport.cpp

+ 3 - 1
src/sctptransport.cpp

@@ -679,8 +679,10 @@ int SctpTransport::RecvCallback(struct socket *sock, union sctp_sockstore addr,
 	auto *transport = static_cast<SctpTransport *>(ptr);
 
 	std::shared_lock lock(InstancesMutex);
-	if (Instances.find(transport) == Instances.end())
+	if (Instances.find(transport) == Instances.end()) {
+		free(data);
 		return -1;
+	}
 
 	int ret =
 	    transport->handleRecv(sock, addr, static_cast<const byte *>(data), len, recv_info, flags);