From: Derrick Brashear Date: Tue, 5 Dec 2006 19:38:44 +0000 (+0000) Subject: rx-preparesendpacket-avoid-double-free-20061205 X-Git-Tag: BP-openafs-windows-kdfs-ifs~925 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=112604e9c31cba4f9605b6b53918aafa8cac77d0 rx-preparesendpacket-avoid-double-free-20061205 wow, this is special existed forever but only when we stopped leaking packets did it become a problem anyway, don't free packets and forget to reduce the number of packets in play --- diff --git a/src/rx/rx_packet.c b/src/rx/rx_packet.c index 83aafb5..804cf38 100644 --- a/src/rx/rx_packet.c +++ b/src/rx/rx_packet.c @@ -2629,7 +2629,7 @@ rxi_PrepareSendPacket(register struct rx_call *call, osi_Panic("PrepareSendPacket 1\n"); /* MTUXXX */ } else { struct rx_queue q; - int nb; + int nb; queue_Init(&q); @@ -2640,8 +2640,8 @@ rxi_PrepareSendPacket(register struct rx_call *call, if (nb) rxi_FreePackets(nb, &q); - p->niovecs = i; - p->wirevec[i - 1].iov_len += len; + p->niovecs = MAX(2, i); + p->wirevec[MAX(2, i) - 1].iov_len += len; } RXS_PreparePacket(conn->securityObject, call, p); }