3f55414718
- Upstream or pending upstream patches from Jan 25587-fix-off-by-one-parsing-error.patch 25616-x86-MCi_CTL-default.patch 25617-vtd-qinval-addr.patch 25688-x86-nr_irqs_gsi.patch - bnc#773393 - VUL-0: CVE-2012-3433: xen: HVM guest destroy p2m teardown host DoS vulnerability CVE-2012-3433-xsa11.patch - bnc#773401 - VUL-1: CVE-2012-3432: xen: HVM guest user mode MMIO emulation DoS 25682-x86-inconsistent-io-state.patch - bnc#762484 - VUL-1: CVE-2012-2625: xen: pv bootloader doesn't check the size of the bzip2 or lzma compressed kernel, leading to denial of service 25589-pygrub-size-limits.patch - Make it build with latest TeXLive 2012 with new package layout OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=196
79 lines
2.5 KiB
Diff
79 lines
2.5 KiB
Diff
# HG changeset patch
|
|
# User Ian Campbell <ian.campbell@citrix.com>
|
|
# Date 1306228450 -3600
|
|
# Node ID 23b423a3955785c9a8679c3a877c3472066a2e1f
|
|
# Parent ba8da39c67298b19c2c277e5794981b7f23bedf2
|
|
libxc: save/restore: remove static context variables
|
|
|
|
20544:ad9d75d74bd5 and 20545:cc7d66ba0dad seemingly intended to change these
|
|
global static variables into stack variables but didn't remove the static
|
|
qualifier.
|
|
|
|
Also zero the entire struct once with memset rather than clearing fields
|
|
piecemeal in two different places.
|
|
|
|
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
|
|
Acked-by: Ian Jackson <ian.jackson.citrix.com>
|
|
Committed-by: Ian Jackson <ian.jackson.citrix.com>
|
|
Acked-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
|
|
|
|
Index: xen-4.1.3-testing/tools/libxc/xc_domain_restore.c
|
|
===================================================================
|
|
--- xen-4.1.3-testing.orig/tools/libxc/xc_domain_restore.c
|
|
+++ xen-4.1.3-testing/tools/libxc/xc_domain_restore.c
|
|
@@ -1145,23 +1145,19 @@ int xc_domain_restore(xc_interface *xch,
|
|
|
|
int orig_io_fd_flags;
|
|
|
|
- static struct restore_ctx _ctx = {
|
|
- .live_p2m = NULL,
|
|
- .p2m = NULL,
|
|
- };
|
|
- static struct restore_ctx *ctx = &_ctx;
|
|
+ struct restore_ctx _ctx;
|
|
+ struct restore_ctx *ctx = &_ctx;
|
|
struct domain_info_context *dinfo = &ctx->dinfo;
|
|
|
|
pagebuf_init(&pagebuf);
|
|
memset(&tailbuf, 0, sizeof(tailbuf));
|
|
tailbuf.ishvm = hvm;
|
|
|
|
- /* For info only */
|
|
- ctx->nr_pfns = 0;
|
|
-
|
|
if ( superpages )
|
|
return 1;
|
|
|
|
+ memset(ctx, 0, sizeof(*ctx));
|
|
+
|
|
ctxt = xc_hypercall_buffer_alloc(xch, ctxt, sizeof(*ctxt));
|
|
|
|
if ( ctxt == NULL )
|
|
Index: xen-4.1.3-testing/tools/libxc/xc_domain_save.c
|
|
===================================================================
|
|
--- xen-4.1.3-testing.orig/tools/libxc/xc_domain_save.c
|
|
+++ xen-4.1.3-testing/tools/libxc/xc_domain_save.c
|
|
@@ -958,11 +958,8 @@ int xc_domain_save(xc_interface *xch, in
|
|
unsigned long mfn;
|
|
|
|
struct outbuf ob;
|
|
- static struct save_ctx _ctx = {
|
|
- .live_p2m = NULL,
|
|
- .live_m2p = NULL,
|
|
- };
|
|
- static struct save_ctx *ctx = &_ctx;
|
|
+ struct save_ctx _ctx;
|
|
+ struct save_ctx *ctx = &_ctx;
|
|
struct domain_info_context *dinfo = &ctx->dinfo;
|
|
|
|
int completed = 0;
|
|
@@ -976,6 +973,8 @@ int xc_domain_save(xc_interface *xch, in
|
|
|
|
outbuf_init(xch, &ob, OUTBUF_SIZE);
|
|
|
|
+ memset(ctx, 0, sizeof(*ctx));
|
|
+
|
|
/* If no explicit control parameters given, use defaults */
|
|
max_iters = max_iters ? : DEF_MAX_ITERS;
|
|
max_factor = max_factor ? : DEF_MAX_FACTOR;
|