[2.6 patch] dvb_net_ule(): fix check-after-use

From: Adrian Bunk
Date: Tue Aug 14 2007 - 17:27:47 EST


The Coverity checker spotted that we'd have already oops'ed if "dev"
was NULL.

Signed-off-by: Adrian Bunk <bunk@xxxxxxxxxx>

---
--- linux-2.6.23-rc1-mm2/drivers/media/dvb/dvb-core/dvb_net.c.old 2007-08-08 06:17:19.000000000 +0200
+++ linux-2.6.23-rc1-mm2/drivers/media/dvb/dvb-core/dvb_net.c 2007-08-08 06:17:35.000000000 +0200
@@ -346,33 +346,28 @@
static void dvb_net_ule( struct net_device *dev, const u8 *buf, size_t buf_len )
{
struct dvb_net_priv *priv = dev->priv;
unsigned long skipped = 0L;
const u8 *ts, *ts_end, *from_where = NULL;
u8 ts_remain = 0, how_much = 0, new_ts = 1;
struct ethhdr *ethh = NULL;

#ifdef ULE_DEBUG
/* The code inside ULE_DEBUG keeps a history of the last 100 TS cells processed. */
static unsigned char ule_hist[100*TS_SZ];
static unsigned char *ule_where = ule_hist, ule_dump = 0;
#endif

- if (dev == NULL) {
- printk( KERN_ERR "NO netdev struct!\n" );
- return;
- }
-
/* For all TS cells in current buffer.
* Appearently, we are called for every single TS cell.
*/
for (ts = buf, ts_end = buf + buf_len; ts < ts_end; /* no default incr. */ ) {

if (new_ts) {
/* We are about to process a new TS cell. */

#ifdef ULE_DEBUG
if (ule_where >= &ule_hist[100*TS_SZ]) ule_where = ule_hist;
memcpy( ule_where, ts, TS_SZ );
if (ule_dump) {
hexdump( ule_where, TS_SZ );
ule_dump = 0;

-
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/