diff options
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.patch | 138 |
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 @@ | |||
1 | From 74074e8a7c60592cf1cc6469dbc2550d24aeded3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Ladi Prosek <lprosek@redhat.com> | ||
3 | Date: Thu, 3 Mar 2016 09:37:16 +0100 | ||
4 | Subject: [PATCH] rng: move request queue from RngEgd to RngBackend | ||
5 | |||
6 | The 'requests' field now lives in the RngBackend parent class. | ||
7 | There are no functional changes in this commit. | ||
8 | |||
9 | Signed-off-by: Ladi Prosek <lprosek@redhat.com> | ||
10 | Reviewed-by: Amit Shah <amit.shah@redhat.com> | ||
11 | Message-Id: <1456994238-9585-3-git-send-email-lprosek@redhat.com> | ||
12 | Signed-off-by: Amit Shah <amit.shah@redhat.com> | ||
13 | |||
14 | Upstream-Status: Backport | ||
15 | in support of CVE-2016-2858 | ||
16 | |||
17 | Signed-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 | |||
24 | Index: 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) | ||
103 | Index: 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 | /** | ||