Free security objects used in VolForward

VolForward and VolForwardMulti create rx security objects, but
never free them. The RXS_Close's are positioned where they are
to limit the need for conditionals

Change-Id: Iec6879270ad54c30c1fea571cea583afaca9364b
Reviewed-on: http://gerrit.openafs.org/9527
Reviewed-by: D Brashear <shadow@your-file-system.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
This commit is contained in:
Chaskiel Grundman 2013-03-08 19:19:05 -05:00 committed by Benjamin Kaduk
parent aea3c2a327
commit 1e1f6e4e8f

View File

@ -1300,6 +1300,9 @@ VolForward(struct rx_call *acid, afs_int32 fromTrans, afs_int32 fromDate,
rx_NewConnection(htonl(destination->destHost), rx_NewConnection(htonl(destination->destHost),
htons(destination->destPort), VOLSERVICE_ID, htons(destination->destPort), VOLSERVICE_ID,
securityObject, securityIndex); securityObject, securityIndex);
RXS_Close(securityObject); /* will be freed after connection destroyed */
if (!tcon) { if (!tcon) {
TClearRxCall(tt); TClearRxCall(tt);
TRELE(tt); TRELE(tt);
@ -1432,6 +1435,9 @@ SAFSVolForwardMultiple(struct rx_call *acid, afs_int32 fromTrans, afs_int32
} }
} }
/* Security object will be freed when all connections destroyed */
RXS_Close(securityObject);
/* these next calls implictly call rx_Write when writing out data */ /* these next calls implictly call rx_Write when writing out data */
code = DumpVolMulti(tcalls, i, vp, fromDate, 0, codes); code = DumpVolMulti(tcalls, i, vp, fromDate, 0, codes);