From: Derrick Brashear Date: Tue, 5 Dec 2006 19:40:13 +0000 (+0000) Subject: STABLE14-rx-preparesendpacket-avoid-double-free-20061205 X-Git-Tag: openafs-stable-1_4_3rc1~55 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=ddf4cba9316e05a1525fe2c500cf5fc9288b130e;p=packages%2Fo%2Fopenafs.git STABLE14-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 36be01f01..9153f30d0 100644 --- a/src/rx/rx_packet.c +++ b/src/rx/rx_packet.c @@ -2606,7 +2606,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); @@ -2617,8 +2617,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); }