Browse Source

Free data when instance is invalid on recv callback

Paul-Louis Ageneau 5 years ago
parent
commit
0593566ba6
1 changed files with 3 additions and 1 deletions
  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);