Procházet zdrojové kódy

Free data when instance is invalid on recv callback

Paul-Louis Ageneau před 5 roky
rodič
revize
0593566ba6
1 změnil soubory, kde provedl 3 přidání a 1 odebrání
  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);