On 11/20/2014 07:35 PM, arei.gong...@huawei.com wrote: > From: Gonglei <arei.gong...@huawei.com> > > Coverity spot: > Assigning: iov = struct iovec [3]({{buf, 12UL}, > {(void *)dot1q_buf, 4UL}, > {buf + 12, size - 12}}) > (address of temporary variable of type struct iovec [3]). > out_of_scope: Temporary variable of type struct iovec [3] goes out of scope. > > Pointer to local outside scope (RETURN_LOCAL) > use_invalid: > Using iov, which points to an out-of-scope temporary variable of type struct > iovec [3]. > > Signed-off-by: Gonglei <arei.gong...@huawei.com> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > hw/net/rtl8139.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c > index 8b8a1b1..5f0197c 100644 > --- a/hw/net/rtl8139.c > +++ b/hw/net/rtl8139.c > @@ -1775,6 +1775,7 @@ static void rtl8139_transfer_frame(RTL8139State *s, > uint8_t *buf, int size, > int do_interrupt, const uint8_t *dot1q_buf) > { > struct iovec *iov = NULL; > + struct iovec vlan_iov[3]; > > if (!size) > { > @@ -1789,6 +1790,9 @@ static void rtl8139_transfer_frame(RTL8139State *s, > uint8_t *buf, int size, > { .iov_base = buf + ETHER_ADDR_LEN * 2, > .iov_len = size - ETHER_ADDR_LEN * 2 }, > }; > + > + memcpy(vlan_iov, iov, sizeof(vlan_iov)); > + iov = vlan_iov; > } > > if (TxLoopBack == (s->TxConfig & TxLoopBack))
Reviewed-by: Jason Wang <jasow...@redhat.com>