diff --git a/core/connection/p2p/common/src/p2plink_loop.c b/core/connection/p2p/common/src/p2plink_loop.c index c0dc0e9b59c4a193a94d0f89b9af5e26e7410542..9601ec1abe97bea097de53aa032b27edbb206b67 100644 --- a/core/connection/p2p/common/src/p2plink_loop.c +++ b/core/connection/p2p/common/src/p2plink_loop.c @@ -96,6 +96,7 @@ int32_t P2pLoopProc(P2pLoopProcessFunc callback, void *para, P2pLoopMsg msgType) cbinfo->cbPara = para; SoftBusMessage *msg = P2pCreateLoopMsg(msgType, (char *)cbinfo); if (msg == NULL) { + SoftBusFree(cbinfo); return SOFTBUS_ERR; } g_p2pcHandler.looper->PostMessage(g_p2pcHandler.looper, msg); @@ -112,6 +113,7 @@ int32_t P2pLoopProcDelay(P2pLoopProcessFunc callback, void *para, uint64_t delay cbinfo->cbPara = para; SoftBusMessage *msg = P2pCreateLoopMsg(msgType, (char *)cbinfo); if (msg == 0) { + SoftBusFree(cbinfo); return SOFTBUS_ERR; } g_p2pcHandler.looper->PostMessageDelay(g_p2pcHandler.looper, msg, delayMillis);