diff --git a/src/volser/volprocs.c b/src/volser/volprocs.c index 11b98f788e..941342a523 100644 --- a/src/volser/volprocs.c +++ b/src/volser/volprocs.c @@ -1300,6 +1300,9 @@ VolForward(struct rx_call *acid, afs_int32 fromTrans, afs_int32 fromDate, rx_NewConnection(htonl(destination->destHost), htons(destination->destPort), VOLSERVICE_ID, securityObject, securityIndex); + + RXS_Close(securityObject); /* will be freed after connection destroyed */ + if (!tcon) { TClearRxCall(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 */ code = DumpVolMulti(tcalls, i, vp, fromDate, 0, codes);