forked from Minki/linux
fore200e: Fix incorrect checks of NULL pointer dereference
In fore200e_send and fore200e_close, the pointers from the arguments are dereferenced in the variable declaration block and then checked for NULL. The patch fixes these issues by avoiding NULL pointer dereferences. Signed-off-by: Aditya Pakki <pakki001@umn.edu> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
03d51c4fc5
commit
bbd20c939c
@ -1414,12 +1414,14 @@ fore200e_open(struct atm_vcc *vcc)
|
||||
static void
|
||||
fore200e_close(struct atm_vcc* vcc)
|
||||
{
|
||||
struct fore200e* fore200e = FORE200E_DEV(vcc->dev);
|
||||
struct fore200e_vcc* fore200e_vcc;
|
||||
struct fore200e* fore200e;
|
||||
struct fore200e_vc_map* vc_map;
|
||||
unsigned long flags;
|
||||
|
||||
ASSERT(vcc);
|
||||
fore200e = FORE200E_DEV(vcc->dev);
|
||||
|
||||
ASSERT((vcc->vpi >= 0) && (vcc->vpi < 1<<FORE200E_VPI_BITS));
|
||||
ASSERT((vcc->vci >= 0) && (vcc->vci < 1<<FORE200E_VCI_BITS));
|
||||
|
||||
@ -1464,10 +1466,10 @@ fore200e_close(struct atm_vcc* vcc)
|
||||
static int
|
||||
fore200e_send(struct atm_vcc *vcc, struct sk_buff *skb)
|
||||
{
|
||||
struct fore200e* fore200e = FORE200E_DEV(vcc->dev);
|
||||
struct fore200e_vcc* fore200e_vcc = FORE200E_VCC(vcc);
|
||||
struct fore200e* fore200e;
|
||||
struct fore200e_vcc* fore200e_vcc;
|
||||
struct fore200e_vc_map* vc_map;
|
||||
struct host_txq* txq = &fore200e->host_txq;
|
||||
struct host_txq* txq;
|
||||
struct host_txq_entry* entry;
|
||||
struct tpd* tpd;
|
||||
struct tpd_haddr tpd_haddr;
|
||||
@ -1480,9 +1482,18 @@ fore200e_send(struct atm_vcc *vcc, struct sk_buff *skb)
|
||||
unsigned char* data;
|
||||
unsigned long flags;
|
||||
|
||||
ASSERT(vcc);
|
||||
ASSERT(fore200e);
|
||||
ASSERT(fore200e_vcc);
|
||||
if (!vcc)
|
||||
return -EINVAL;
|
||||
|
||||
fore200e = FORE200E_DEV(vcc->dev);
|
||||
fore200e_vcc = FORE200E_VCC(vcc);
|
||||
|
||||
if (!fore200e)
|
||||
return -EINVAL;
|
||||
|
||||
txq = &fore200e->host_txq;
|
||||
if (!fore200e_vcc)
|
||||
return -EINVAL;
|
||||
|
||||
if (!test_bit(ATM_VF_READY, &vcc->flags)) {
|
||||
DPRINTK(1, "VC %d.%d.%d not ready for tx\n", vcc->itf, vcc->vpi, vcc->vpi);
|
||||
|
Loading…
Reference in New Issue
Block a user