Am 25.11.2011 12:06, schrieb Paolo Bonzini: > qemu_iovec_destroy does not clear the QEMUIOVector fully, and the data > could thus be used after free or freed again. While I do not know any > example in the tree, I observed this using virtio-scsi (and SCSI > scatter/gather) when canceling DMA requests. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
This isn't a bug fix for itself, it just makes bugs in other code more visible, right? It probably makes sense to do this change, but I'm not sure about doing it for 1.0. Kevin > --- > cutils.c | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/cutils.c b/cutils.c > index 5d995bc..731a27e 100644 > --- a/cutils.c > +++ b/cutils.c > @@ -217,7 +217,10 @@ void qemu_iovec_destroy(QEMUIOVector *qiov) > { > assert(qiov->nalloc != -1); > > + qemu_iovec_reset(qiov); > g_free(qiov->iov); > + qiov->nalloc = 0; > + qiov->iov = NULL; > } > > void qemu_iovec_reset(QEMUIOVector *qiov)