]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-rx-preparesendpacket-avoid-double-free-20061205
authorDerrick Brashear <shadow@dementia.org>
Tue, 5 Dec 2006 19:41:34 +0000 (19:41 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 5 Dec 2006 19:41:34 +0000 (19:41 +0000)
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)

src/rx/rx_packet.c

index 0aa9c8bd7e7ec9e111fe8d4ac32c60eb85b36012..ce5176051f47b3c8cccf56b2052089d33e22c586 100644 (file)
@@ -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);
 }