On 01/11/2016 04:32 PM, Michael Tokarev wrote:
21.11.2015 10:45, Cao jin wrote:
add param check for pci_add_capability2, as it is a public API.
Signed-off-by: Cao jin <caoj.f...@cn.fujitsu.com>
---
hw/pci/pci.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 168b9cc..6938f64 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -2144,6 +2144,9 @@ int pci_add_capability2(PCIDevice *pdev, uint8_t cap_id,
uint8_t *config;
int i, overlapping_cap;
+ assert(size > 0);
+ assert(offset >= PCI_CONFIG_HEADER_SIZE || !offset);
+
I'd like to see some ACKs/Reviews for this one, in particular why
size should be != 0.
see pci_find_space(), if size == 0, I guess it will always return 0.
But I should admit that I did made a mistake, I will talk about it in
next mail.
Also either move offset assert to the below
"else" clause or rewrite it to be offset == 0 instead if !offset :)
Thanks,
/mjt
if (!offset) {
offset = pci_find_space(pdev, size);
if (!offset) {
.
--
Yours Sincerely,
Cao jin