summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/qemu/qemu/rng_move_request_from_RngEgd_to_RngBackend.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/qemu/qemu/rng_move_request_from_RngEgd_to_RngBackend.patch')
-rw-r--r--meta/recipes-devtools/qemu/qemu/rng_move_request_from_RngEgd_to_RngBackend.patch138
1 files changed, 0 insertions, 138 deletions
diff --git a/meta/recipes-devtools/qemu/qemu/rng_move_request_from_RngEgd_to_RngBackend.patch b/meta/recipes-devtools/qemu/qemu/rng_move_request_from_RngEgd_to_RngBackend.patch
deleted file mode 100644
index 01928f91e8..0000000000
--- a/meta/recipes-devtools/qemu/qemu/rng_move_request_from_RngEgd_to_RngBackend.patch
+++ /dev/null
@@ -1,138 +0,0 @@
1From 74074e8a7c60592cf1cc6469dbc2550d24aeded3 Mon Sep 17 00:00:00 2001
2From: Ladi Prosek <lprosek@redhat.com>
3Date: Thu, 3 Mar 2016 09:37:16 +0100
4Subject: [PATCH] rng: move request queue from RngEgd to RngBackend
5
6The 'requests' field now lives in the RngBackend parent class.
7There are no functional changes in this commit.
8
9Signed-off-by: Ladi Prosek <lprosek@redhat.com>
10Reviewed-by: Amit Shah <amit.shah@redhat.com>
11Message-Id: <1456994238-9585-3-git-send-email-lprosek@redhat.com>
12Signed-off-by: Amit Shah <amit.shah@redhat.com>
13
14Upstream-Status: Backport
15in support of CVE-2016-2858
16
17Signed-off-by: Armin Kuster <akuster@mvista.com>
18
19---
20 backends/rng-egd.c | 28 +++++++++-------------------
21 include/sysemu/rng.h | 11 +++++++++++
22 2 files changed, 20 insertions(+), 19 deletions(-)
23
24Index: qemu-2.5.0/backends/rng-egd.c
25===================================================================
26--- qemu-2.5.0.orig/backends/rng-egd.c
27+++ qemu-2.5.0/backends/rng-egd.c
28@@ -24,19 +24,8 @@ typedef struct RngEgd
29
30 CharDriverState *chr;
31 char *chr_name;
32-
33- GSList *requests;
34 } RngEgd;
35
36-typedef struct RngRequest
37-{
38- EntropyReceiveFunc *receive_entropy;
39- uint8_t *data;
40- void *opaque;
41- size_t offset;
42- size_t size;
43-} RngRequest;
44-
45 static void rng_egd_request_entropy(RngBackend *b, size_t size,
46 EntropyReceiveFunc *receive_entropy,
47 void *opaque)
48@@ -65,7 +54,7 @@ static void rng_egd_request_entropy(RngB
49 size -= len;
50 }
51
52- s->requests = g_slist_append(s->requests, req);
53+ s->parent.requests = g_slist_append(s->parent.requests, req);
54 }
55
56 static void rng_egd_free_request(RngRequest *req)
57@@ -80,7 +69,7 @@ static int rng_egd_chr_can_read(void *op
58 GSList *i;
59 int size = 0;
60
61- for (i = s->requests; i; i = i->next) {
62+ for (i = s->parent.requests; i; i = i->next) {
63 RngRequest *req = i->data;
64 size += req->size - req->offset;
65 }
66@@ -93,8 +82,8 @@ static void rng_egd_chr_read(void *opaqu
67 RngEgd *s = RNG_EGD(opaque);
68 size_t buf_offset = 0;
69
70- while (size > 0 && s->requests) {
71- RngRequest *req = s->requests->data;
72+ while (size > 0 && s->parent.requests) {
73+ RngRequest *req = s->parent.requests->data;
74 int len = MIN(size, req->size - req->offset);
75
76 memcpy(req->data + req->offset, buf + buf_offset, len);
77@@ -103,7 +92,8 @@ static void rng_egd_chr_read(void *opaqu
78 size -= len;
79
80 if (req->offset == req->size) {
81- s->requests = g_slist_remove_link(s->requests, s->requests);
82+ s->parent.requests = g_slist_remove_link(s->parent.requests,
83+ s->parent.requests);
84
85 req->receive_entropy(req->opaque, req->data, req->size);
86
87@@ -116,12 +106,12 @@ static void rng_egd_free_requests(RngEgd
88 {
89 GSList *i;
90
91- for (i = s->requests; i; i = i->next) {
92+ for (i = s->parent.requests; i; i = i->next) {
93 rng_egd_free_request(i->data);
94 }
95
96- g_slist_free(s->requests);
97- s->requests = NULL;
98+ g_slist_free(s->parent.requests);
99+ s->parent.requests = NULL;
100 }
101
102 static void rng_egd_cancel_requests(RngBackend *b)
103Index: qemu-2.5.0/include/sysemu/rng.h
104===================================================================
105--- qemu-2.5.0.orig/include/sysemu/rng.h
106+++ qemu-2.5.0/include/sysemu/rng.h
107@@ -25,6 +25,7 @@
108 #define RNG_BACKEND_CLASS(klass) \
109 OBJECT_CLASS_CHECK(RngBackendClass, (klass), TYPE_RNG_BACKEND)
110
111+typedef struct RngRequest RngRequest;
112 typedef struct RngBackendClass RngBackendClass;
113 typedef struct RngBackend RngBackend;
114
115@@ -32,6 +33,15 @@ typedef void (EntropyReceiveFunc)(void *
116 const void *data,
117 size_t size);
118
119+struct RngRequest
120+{
121+ EntropyReceiveFunc *receive_entropy;
122+ uint8_t *data;
123+ void *opaque;
124+ size_t offset;
125+ size_t size;
126+};
127+
128 struct RngBackendClass
129 {
130 ObjectClass parent_class;
131@@ -49,6 +59,7 @@ struct RngBackend
132
133 /*< protected >*/
134 bool opened;
135+ GSList *requests;
136 };
137
138 /**