When more complexity was added to facilitate inlining, Coverity lost the ability to use the address_space_rw model for address_space_read/write.
This causes false positive defects when Coverity sees a length-8 write in address_space_read and a length-4 (e.g. int*) buffer to read into. As long as the size of the buffer is okay, this is a false positive. Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- scripts/coverity-model.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/scripts/coverity-model.c b/scripts/coverity-model.c index ee5bf9d..2e30150 100644 --- a/scripts/coverity-model.c +++ b/scripts/coverity-model.c @@ -79,6 +79,25 @@ MemTxResult address_space_rw(AddressSpace *as, hwaddr addr, MemTxAttrs attrs, return result; } +MemTxResult address_space_read(AddressSpace *as, hwaddr addr, + MemTxAttrs attrs, + uint8_t *buf, int len) +{ + MemTxResult result; + __bufwrite(buf, len); + return result; +} + +MemTxResult address_space_write(AddressSpace *as, hwaddr addr, + MemTxAttrs attrs, + const uint8_t *buf, int len) +{ + MemTxResult result; + __bufread(buf, len); + return result; +} + + /* Tainting */ typedef struct {} name2keysym_t; -- 2.9.3