mirror of https://github.com/xemu-project/xemu.git
virtio-gpu: check if the resource already exists in virtio_gpu_load()
While loading virtio-gpu, the data can be malicious, we should check if the resource already exists. Signed-off-by: Li Qiang <liq3ea@163.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-id: 20190628161358.10400-1-liq3ea@163.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
a7f85e03b9
commit
b0ee78ff31
|
@ -1002,6 +1002,11 @@ static int virtio_gpu_load(QEMUFile *f, void *opaque, size_t size,
|
||||||
|
|
||||||
resource_id = qemu_get_be32(f);
|
resource_id = qemu_get_be32(f);
|
||||||
while (resource_id != 0) {
|
while (resource_id != 0) {
|
||||||
|
res = virtio_gpu_find_resource(g, resource_id);
|
||||||
|
if (res) {
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
res = g_new0(struct virtio_gpu_simple_resource, 1);
|
res = g_new0(struct virtio_gpu_simple_resource, 1);
|
||||||
res->resource_id = resource_id;
|
res->resource_id = resource_id;
|
||||||
res->width = qemu_get_be32(f);
|
res->width = qemu_get_be32(f);
|
||||||
|
|
Loading…
Reference in New Issue