mirror of
https://git.openafs.org/openafs.git
synced 2025-01-19 07:20:11 +00:00
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.
This commit is contained in:
parent
fc5acc0151
commit
6f707d9406
@ -7346,6 +7346,8 @@ SRXAFS_CallBackRxConnAddr (struct rx_call * acall, afs_int32 *addr)
|
|||||||
thost->host = addr;
|
thost->host = addr;
|
||||||
rx_SetConnDeadTime(thost->callback_rxcon, 50);
|
rx_SetConnDeadTime(thost->callback_rxcon, 50);
|
||||||
rx_SetConnHardDeadTime(thost->callback_rxcon, AFS_HARDDEADTIME);
|
rx_SetConnHardDeadTime(thost->callback_rxcon, AFS_HARDDEADTIME);
|
||||||
|
h_ReleaseClient_r(tclient);
|
||||||
|
/* The hold on thost will be released by CallPostamble */
|
||||||
H_UNLOCK;
|
H_UNLOCK;
|
||||||
errorCode = CallPostamble(tcon, errorCode);
|
errorCode = CallPostamble(tcon, errorCode);
|
||||||
return errorCode;
|
return errorCode;
|
||||||
@ -7353,6 +7355,8 @@ SRXAFS_CallBackRxConnAddr (struct rx_call * acall, afs_int32 *addr)
|
|||||||
rx_DestroyConnection(conn);
|
rx_DestroyConnection(conn);
|
||||||
}
|
}
|
||||||
Bad_CallBackRxConnAddr:
|
Bad_CallBackRxConnAddr:
|
||||||
|
h_ReleaseClient_r(tclient);
|
||||||
|
/* The hold on thost will be released by CallPostamble */
|
||||||
H_UNLOCK;
|
H_UNLOCK;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user