atm: iphase: off by one in rx_pkt()
The iadev->rx_open[] array holds "iadev->num_vc" pointers (this code assumes that pointers are 32 bits). So the > here should be >= or else we could end up reading a garbage pointer from one element beyond the end of the array. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
86f04396ff
commit
f2633d2eaa
|
@ -1128,7 +1128,7 @@ static int rx_pkt(struct atm_dev *dev)
|
||||||
/* make the ptr point to the corresponding buffer desc entry */
|
/* make the ptr point to the corresponding buffer desc entry */
|
||||||
buf_desc_ptr += desc;
|
buf_desc_ptr += desc;
|
||||||
if (!desc || (desc > iadev->num_rx_desc) ||
|
if (!desc || (desc > iadev->num_rx_desc) ||
|
||||||
((buf_desc_ptr->vc_index & 0xffff) > iadev->num_vc)) {
|
((buf_desc_ptr->vc_index & 0xffff) >= iadev->num_vc)) {
|
||||||
free_desc(dev, desc);
|
free_desc(dev, desc);
|
||||||
IF_ERR(printk("IA: bad descriptor desc = %d \n", desc);)
|
IF_ERR(printk("IA: bad descriptor desc = %d \n", desc);)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
Loading…
Reference in New Issue