qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/6] virtio: introduce virtio_map


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH 1/6] virtio: introduce virtio_map
Date: Tue, 27 Oct 2015 20:38:15 +0200

On Tue, Oct 27, 2015 at 04:13:12PM +0000, Stefan Hajnoczi wrote:
> On Tue, Oct 27, 2015 at 10:47:56AM +0200, Michael S. Tsirkin wrote:
> > +    for (i = 0; i < *num_sg; i++) {
> >          len = sg[i].iov_len;
> >          sg[i].iov_base = cpu_physical_memory_map(addr[i], &len, is_write);
> > -        if (sg[i].iov_base == NULL || len != sg[i].iov_len) {
> > +        if (!sg[i].iov_base) {
> >              error_report("virtio: error trying to map MMIO memory");
> >              exit(1);
> >          }
> > +        if (len == sg[i].iov_len) {
> > +            continue;
> > +        }
> > +        if (*num_sg >= max_size) {
> > +            error_report("virtio: memory split makes iovec too large");
> > +            exit(1);
> > +        }
> > +        memcpy(sg + i + 1, sg + i, sizeof(*sg) * (*num_sg - i));
> > +        memcpy(addr + i + 1, addr + i, sizeof(*addr) * (*num_sg - i));
> 
> These should be memmove() since memcpy() arguments are not allowed to overlap.

Oh right. Will fix, thanks!



reply via email to

[Prev in Thread] Current Thread [Next in Thread]