DEVEL15-rx-readpacket-leak-20060728
authorTom Keiser <tkeiser@gmail.com>
Mon, 31 Jul 2006 16:09:09 +0000 (16:09 +0000)
committerDerrick Brashear <shadow@dementia.org>
Mon, 31 Jul 2006 16:09:09 +0000 (16:09 +0000)
avoid just allocating packets forever

(cherry picked from commit e199597d529a035f50e57e7dd653a8095313d246)

src/rx/rx_kcommon.c
src/rx/rx_packet.c

index 87728b1..5cb65cc 100644 (file)
@@ -1138,9 +1138,7 @@ rxk_ReadPacket(osi_socket so, struct rx_packet *p, int *host, int *port)
     if (!code) {
        p->length = nbytes - RX_HEADER_SIZE;;
        if ((nbytes > tlen) || (p->length & 0x8000)) {  /* Bogus packet */
-           if (nbytes > 0)
-               rxi_MorePackets(rx_initSendWindow);
-           else {
+           if (nbytes <= 0) {
                MUTEX_ENTER(&rx_stats_mutex);
                rx_stats.bogusPacketOnRead++;
                rx_stats.bogusHost = from.sin_addr.s_addr;
index e943e70..0aa9c8b 100644 (file)
@@ -1394,13 +1394,11 @@ rxi_ReadPacket(osi_socket socket, register struct rx_packet *p, afs_uint32 * hos
 
     p->length = (nbytes - RX_HEADER_SIZE);
     if ((nbytes > tlen) || (p->length & 0x8000)) {     /* Bogus packet */
-       if (nbytes > 0)
-           rxi_MorePackets(rx_initSendWindow);
-       else if (nbytes < 0 && errno == EWOULDBLOCK) {
+       if (nbytes < 0 && errno == EWOULDBLOCK) {
            MUTEX_ENTER(&rx_stats_mutex);
            rx_stats.noPacketOnRead++;
            MUTEX_EXIT(&rx_stats_mutex);
-       } else {
+       } else if (nbytes <= 0) {
            MUTEX_ENTER(&rx_stats_mutex);
            rx_stats.bogusPacketOnRead++;
            rx_stats.bogusHost = from.sin_addr.s_addr;