mirror of
https://git.openafs.org/openafs.git
synced 2025-02-01 05:57:43 +00:00
rx-readproc32-avoid-losing-currentpacket-20080925
LICENSE IPL10 when currentPacket is empty, avoid leaking it and instead free and NULL it
This commit is contained in:
parent
eb875d3034
commit
883683fc31
@ -325,6 +325,16 @@ rx_ReadProc(struct rx_call *call, char *buf, int nbytes)
|
||||
call->curpos = tcurpos + nbytes;
|
||||
call->curlen = tcurlen - nbytes;
|
||||
call->nLeft = tnLeft - nbytes;
|
||||
|
||||
if (!call->nLeft) {
|
||||
/* out of packet. Get another one. */
|
||||
NETPRI;
|
||||
MUTEX_ENTER(&call->lock);
|
||||
rxi_FreePacket(call->currentPacket);
|
||||
call->currentPacket = (struct rx_packet *)0;
|
||||
MUTEX_EXIT(&call->lock);
|
||||
USERPRI;
|
||||
}
|
||||
return nbytes;
|
||||
}
|
||||
|
||||
@ -373,6 +383,15 @@ rx_ReadProc32(struct rx_call *call, afs_int32 * value)
|
||||
call->curpos = tcurpos + sizeof(afs_int32);
|
||||
call->curlen = (u_short)(tcurlen - sizeof(afs_int32));
|
||||
call->nLeft = (u_short)(tnLeft - sizeof(afs_int32));
|
||||
if (!call->nLeft) {
|
||||
/* out of packet. Get another one. */
|
||||
NETPRI;
|
||||
MUTEX_ENTER(&call->lock);
|
||||
rxi_FreePacket(call->currentPacket);
|
||||
call->currentPacket = (struct rx_packet *)0;
|
||||
MUTEX_EXIT(&call->lock);
|
||||
USERPRI;
|
||||
}
|
||||
return sizeof(afs_int32);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user