diff options
Diffstat (limited to 'meta/recipes-devtools/qemu/qemu/CVE-2015-7295_2.patch')
-rw-r--r-- | meta/recipes-devtools/qemu/qemu/CVE-2015-7295_2.patch | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/meta/recipes-devtools/qemu/qemu/CVE-2015-7295_2.patch b/meta/recipes-devtools/qemu/qemu/CVE-2015-7295_2.patch new file mode 100644 index 0000000000..74debf42a2 --- /dev/null +++ b/meta/recipes-devtools/qemu/qemu/CVE-2015-7295_2.patch | |||
@@ -0,0 +1,58 @@ | |||
1 | From 29b9f5efd78ae0f9cc02dd169b6e80d2c404bade Mon Sep 17 00:00:00 2001 | ||
2 | From: Jason Wang <jasowang@redhat.com> | ||
3 | Date: Fri, 25 Sep 2015 13:21:29 +0800 | ||
4 | Subject: [PATCH] virtio: introduce virtqueue_discard() | ||
5 | |||
6 | This patch introduces virtqueue_discard() to discard a descriptor and | ||
7 | unmap the sgs. This will be used by the patch that will discard | ||
8 | descriptor when packet is truncated. | ||
9 | |||
10 | Cc: Michael S. Tsirkin <mst@redhat.com> | ||
11 | Signed-off-by: Jason Wang <jasowang@redhat.com> | ||
12 | Reviewed-by: Michael S. Tsirkin <mst@redhat.com> | ||
13 | Signed-off-by: Michael S. Tsirkin <mst@redhat.com> | ||
14 | Upstream-Status: Backport | ||
15 | |||
16 | git.qemu.org/?p=qemu.git;a=commit;h=29b9f5efd78ae0f9cc02dd169b6e80d2c404bade | ||
17 | |||
18 | CVE: CVE-2015-7295 patch #2 | ||
19 | [Yocto # 9013] | ||
20 | |||
21 | Signed-off-by: Armin Kuster <akuster@mvista.com> | ||
22 | |||
23 | --- | ||
24 | hw/virtio/virtio.c | 7 +++++++ | ||
25 | include/hw/virtio/virtio.h | 2 ++ | ||
26 | 2 files changed, 9 insertions(+) | ||
27 | |||
28 | Index: qemu-2.2.0/hw/virtio/virtio.c | ||
29 | =================================================================== | ||
30 | --- qemu-2.2.0.orig/hw/virtio/virtio.c | ||
31 | +++ qemu-2.2.0/hw/virtio/virtio.c | ||
32 | @@ -263,6 +263,13 @@ static void virtqueue_unmap_sg(VirtQueue | ||
33 | 0, elem->out_sg[i].iov_len); | ||
34 | } | ||
35 | |||
36 | +void virtqueue_discard(VirtQueue *vq, const VirtQueueElement *elem, | ||
37 | + unsigned int len) | ||
38 | +{ | ||
39 | + vq->last_avail_idx--; | ||
40 | + virtqueue_unmap_sg(vq, elem, len); | ||
41 | +} | ||
42 | + | ||
43 | void virtqueue_fill(VirtQueue *vq, const VirtQueueElement *elem, | ||
44 | unsigned int len, unsigned int idx) | ||
45 | { | ||
46 | Index: qemu-2.2.0/include/hw/virtio/virtio.h | ||
47 | =================================================================== | ||
48 | --- qemu-2.2.0.orig/include/hw/virtio/virtio.h | ||
49 | +++ qemu-2.2.0/include/hw/virtio/virtio.h | ||
50 | @@ -180,6 +180,8 @@ void virtio_del_queue(VirtIODevice *vdev | ||
51 | void virtqueue_push(VirtQueue *vq, const VirtQueueElement *elem, | ||
52 | unsigned int len); | ||
53 | void virtqueue_flush(VirtQueue *vq, unsigned int count); | ||
54 | +void virtqueue_discard(VirtQueue *vq, const VirtQueueElement *elem, | ||
55 | + unsigned int len); | ||
56 | void virtqueue_fill(VirtQueue *vq, const VirtQueueElement *elem, | ||
57 | unsigned int len, unsigned int idx); | ||
58 | |||