From: Derrick Brashear Date: Tue, 5 Dec 2006 19:41:34 +0000 (+0000) Subject: DEVEL15-rx-preparesendpacket-avoid-double-free-20061205 X-Git-Tag: openafs-devel-1_5_13~33 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=1fc0a4ead1a3227f61f92a0fe0775f4796e8e467;p=packages%2Fo%2Fopenafs.git DEVEL15-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 (cherry picked from commit 112604e9c31cba4f9605b6b53918aafa8cac77d0) --- diff --git a/src/rx/rx_packet.c b/src/rx/rx_packet.c index 0aa9c8bd7..ce5176051 100644 --- a/src/rx/rx_packet.c +++ b/src/rx/rx_packet.c @@ -2623,7 +2623,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); @@ -2634,8 +2634,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); }