Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b27adb6 authored by John W. Linville's avatar John W. Linville
Browse files

[PATCH] e1000: zero-out pointers in e1000_free_desc_rings



In e1000_free_desc_rings, zero-out pointers after the memory they
point to is freed.  The test rings are static and get re-used, and
failures during subsequent test setups can cause e1000_free_desc_rings
to get called with dirty pointers.  Dirty pointers can cause oopses
or crashes...

Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent e98fc4aa
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -960,13 +960,21 @@ e1000_free_desc_rings(struct e1000_adapter *adapter)
		}
	}

	if(txdr->desc)
	if(txdr->desc) {
		pci_free_consistent(pdev, txdr->size, txdr->desc, txdr->dma);
	if(rxdr->desc)
		txdr->desc = NULL;
	}
	if(rxdr->desc) {
		pci_free_consistent(pdev, rxdr->size, rxdr->desc, rxdr->dma);
		rxdr->desc = NULL;
	}

	kfree(txdr->buffer_info);
	txdr->buffer_info = NULL;

	kfree(rxdr->buffer_info);
	rxdr->buffer_info = NULL;

	return;
}