From bf8fa7c1861bce413dd8cf2219cdba633cd0c291 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 1 Mar 2006 05:04:32 +0000 Subject: [PATCH] STABLE14-viced-client-refcount-leak-20060228 SRXAFS_CallBackRxConnAddr calls h_FindClient_r which returns a client with a refCount and the client->host held. The call to CallPostamble will release the host hold but not the client refcount. (cherry picked from commit 6f707d94064646762e7014d19840b5b2902b3a4e) --- src/viced/afsfileprocs.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/viced/afsfileprocs.c b/src/viced/afsfileprocs.c index 311408494..2a330e0fd 100644 --- a/src/viced/afsfileprocs.c +++ b/src/viced/afsfileprocs.c @@ -7473,6 +7473,8 @@ SRXAFS_CallBackRxConnAddr (struct rx_call * acall, afs_int32 *addr) thost->host = addr; rx_SetConnDeadTime(thost->callback_rxcon, 50); rx_SetConnHardDeadTime(thost->callback_rxcon, AFS_HARDDEADTIME); + h_ReleaseClient_r(tclient); + /* The hold on thost will be released by CallPostamble */ H_UNLOCK; errorCode = CallPostamble(tcon, errorCode); return errorCode; @@ -7480,6 +7482,8 @@ SRXAFS_CallBackRxConnAddr (struct rx_call * acall, afs_int32 *addr) rx_DestroyConnection(conn); } Bad_CallBackRxConnAddr: + h_ReleaseClient_r(tclient); + /* The hold on thost will be released by CallPostamble */ H_UNLOCK; #endif -- 2.39.5