coverity: fix address_space_rw model
If the is_write argument is true, address_space_rw writes to memory and thus reads from the buffer. The opposite holds if is_write is false. Fix the model. Cc: Markus Armbruster <armbru@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
5bccbb04a4
commit
2e1c92daff
@ -49,7 +49,7 @@ typedef uint64_t hwaddr;
|
|||||||
typedef uint32_t MemTxResult;
|
typedef uint32_t MemTxResult;
|
||||||
typedef uint64_t MemTxAttrs;
|
typedef uint64_t MemTxAttrs;
|
||||||
|
|
||||||
static void __write(uint8_t *buf, ssize_t len)
|
static void __bufwrite(uint8_t *buf, ssize_t len)
|
||||||
{
|
{
|
||||||
int first, last;
|
int first, last;
|
||||||
__coverity_negative_sink__(len);
|
__coverity_negative_sink__(len);
|
||||||
@ -59,7 +59,7 @@ static void __write(uint8_t *buf, ssize_t len)
|
|||||||
__coverity_writeall__(buf);
|
__coverity_writeall__(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __read(uint8_t *buf, ssize_t len)
|
static void __bufread(uint8_t *buf, ssize_t len)
|
||||||
{
|
{
|
||||||
__coverity_negative_sink__(len);
|
__coverity_negative_sink__(len);
|
||||||
if (len == 0) return;
|
if (len == 0) return;
|
||||||
@ -74,7 +74,7 @@ MemTxResult address_space_rw(AddressSpace *as, hwaddr addr, MemTxAttrs attrs,
|
|||||||
|
|
||||||
// TODO: investigate impact of treating reads as producing
|
// TODO: investigate impact of treating reads as producing
|
||||||
// tainted data, with __coverity_tainted_data_argument__(buf).
|
// tainted data, with __coverity_tainted_data_argument__(buf).
|
||||||
if (is_write) __write(buf, len); else __read(buf, len);
|
if (is_write) __bufread(buf, len); else __bufwrite(buf, len);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user