[PATCH] Fix potential leaks in pc300_tty driver

From: Dave Jones
Date: Wed Sep 01 2004 - 11:02:08 EST


It appears that 'new' can be allocated, and next time around
the loop, if something goes wrong, we lose the reference..

Spotted with the source checker from Coverity.com.

Signed-off-by: Dave Jones <davej@xxxxxxxxxx>


diff -urpN --exclude-from=/home/davej/.exclude bk-linus/drivers/net/wan/pc300_tty.c linux-2.6/drivers/net/wan/pc300_tty.c
--- bk-linus/drivers/net/wan/pc300_tty.c 2004-07-14 00:00:48.000000000 +0100
+++ linux-2.6/drivers/net/wan/pc300_tty.c 2004-08-23 14:08:15.000000000 +0100
@@ -789,6 +789,10 @@ void cpc_tty_receive(pc300dev_t *pc300de
cpc_writel(card->hw.scabase + DRX_REG(EDAL, ch),
RX_BD_ADDR(ch, pc300chan->rx_last_bd));
}
+ if (new) {
+ kfree(new);
+ new = NULL;
+ }
return;
}

@@ -834,7 +838,8 @@ void cpc_tty_receive(pc300dev_t *pc300de
cpc_tty->name);
cpc_tty_rx_disc_frame(pc300chan);
rx_len = 0;
- kfree((unsigned char *)new);
+ kfree(new);
+ new = NULL;
break; /* read next frame - while(1) */
}

@@ -843,7 +848,8 @@ void cpc_tty_receive(pc300dev_t *pc300de
cpc_tty_rx_disc_frame(pc300chan);
stats->rx_dropped++;
rx_len = 0;
- kfree((unsigned char *)new);
+ kfree(new);
+ new = NULL;
break; /* read next frame - while(1) */
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/