Your message dated Sat, 28 Jun 2008 09:47:08 +0000
with message-id <[EMAIL PROTECTED]>
and subject line Bug#474509: fixed in xen-3 3.2.1-2
has caused the Debian Bug report #474509,
regarding xen: Please enable support for loading bzImages with v2.08 of the x86
bootloader protocol
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [EMAIL PROTECTED]
immediately.)
--
474509: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=474509
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Package: xen
Severity: wishlist
Tags: patch
This wishlist bug is the Xen domain builder counterpart to #473645.
Please could you consider applying this changeset to the Xen packages
http://xenbits.xensource.com/xen-unstable.hg?rev/db943e8d1051
The patch drops cleanly into trunk/xen-3/debian/patches.
I had to make a skanky hack to touch the new file before applying
the quilt series otherwise the file in .pc ends up with permissions
0000 (due to deliberate patch --backup behaviour) and the cp fails:
patching file tools/libxc/xc_dom_elfloader.c
Now at patch tools-x86-bzImage-domain-builder.diff
touch debian/stamps/source
cp -a debian/build/source debian/build/build-hypervisor_i386_i386
cp: cannot open
`debian/build/source/.pc/tools-x86-bzImage-domain-builder.diff/tools/libxc/xc_dom_bzimageloader.c'
for reading: Permission denied
make[2]: *** [debian/stamps/setup-hypervisor_i386_i386] Error 1
make[2]: Leaving directory
`/home/ijc/development/debian/pkg-xen/trunk/xen-3-3.2.0'
make[1]: *** [setup_i386_none_i386] Error 2
make[1]: Leaving directory
`/home/ijc/development/debian/pkg-xen/trunk/xen-3-3.2.0'
make: *** [debian/stamps/setup-base] Error 2
Is this an issue with a known workaround?
This will allow suitably up-to-date or patched kernels to be booted
directly from the bzImage. This includes any kernel package built with
the patches from #473645.
Cheers,
Ian.
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.24-1-amd64 (SMP w/1 CPU core)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Index: xen-3/debian/patches/series
===================================================================
--- xen-3/debian/patches/series (revision 545)
+++ xen-3/debian/patches/series (working copy)
@@ -15,3 +15,4 @@
tools-misc-xend-race.diff
doc-remove-unused.diff
CVE-2008-0928
+tools-x86-bzImage-domain-builder.diff
Index: xen-3/debian/patches/tools-x86-bzImage-domain-builder.diff
===================================================================
--- xen-3/debian/patches/tools-x86-bzImage-domain-builder.diff (revision 0)
+++ xen-3/debian/patches/tools-x86-bzImage-domain-builder.diff (revision 0)
@@ -0,0 +1,209 @@
+# HG changeset patch
+# User Keir Fraser <[EMAIL PROTECTED]>
+# Date 1207040973 -3600
+# Node ID db943e8d10514445763123bb56b383e795e9b518
+# Parent ff32e4cd61af0b14e402124ea1b2c26842c680b8
+x86: Support loading Linux bzImage v2.08 and up.
+
+The latest -mm kernel (2.6.25-rc3-mm1) contains v2.08 of the Linux
+bzImage format which embeds an ELF file in place of the raw payload
+allowing it to be extracted and used by the Xen domain builder.
+
+It is expected that this functionality will be put forward for 2.6.26.
+
+Signed-off-by : Ian Campbell <[EMAIL PROTECTED]>
+
+diff -r ff32e4cd61af -r db943e8d1051 tools/libxc/Makefile
+--- a/tools/libxc/Makefile Tue Apr 01 10:08:03 2008 +0100
++++ b/tools/libxc/Makefile Tue Apr 01 10:09:33 2008 +0100
+@@ -46,10 +46,11 @@ GUEST_SRCS-y += libelf-dominfo.c libelf-
+ GUEST_SRCS-y += libelf-dominfo.c libelf-relocate.c
+
+ # new domain builder
+-GUEST_SRCS-y += xc_dom_core.c xc_dom_boot.c
+-GUEST_SRCS-y += xc_dom_elfloader.c
+-GUEST_SRCS-y += xc_dom_binloader.c
+-GUEST_SRCS-y += xc_dom_compat_linux.c
++GUEST_SRCS-y += xc_dom_core.c xc_dom_boot.c
++GUEST_SRCS-y += xc_dom_elfloader.c
++GUEST_SRCS-$(CONFIG_X86) += xc_dom_bzimageloader.c
++GUEST_SRCS-y += xc_dom_binloader.c
++GUEST_SRCS-y += xc_dom_compat_linux.c
+
+ GUEST_SRCS-$(CONFIG_X86) += xc_dom_x86.c
+ GUEST_SRCS-$(CONFIG_IA64) += xc_dom_ia64.c
+diff -r ff32e4cd61af -r db943e8d1051 tools/libxc/xc_dom_bzimageloader.c
+--- /dev/null Thu Jan 01 00:00:00 1970 +0000
++++ b/tools/libxc/xc_dom_bzimageloader.c Tue Apr 01 10:09:33 2008 +0100
+@@ -0,0 +1,159 @@
++/*
++ * Xen domain builder -- bzImage bits
++ *
++ * Parse and load bzImage kernel images.
++ *
++ * This relies on version 2.08 of the boot protocol, which contains an
++ * ELF file embedded in the bzImage. The loader extracts this ELF
++ * image and passes it off to the standard ELF loader.
++ *
++ * This code is licenced under the GPL.
++ * written 2006 by Gerd Hoffmann <[EMAIL PROTECTED]>.
++ * written 2007 by Jeremy Fitzhardinge <[EMAIL PROTECTED]>
++ * written 2008 by Ian Campbell <[EMAIL PROTECTED]>
++ *
++ */
++#include <stdio.h>
++#include <stdlib.h>
++#include <inttypes.h>
++
++#include "xg_private.h"
++#include "xc_dom.h"
++
++struct setup_header {
++ uint8_t _pad0[0x1f1]; /* skip uninteresting stuff */
++ uint8_t setup_sects;
++ uint16_t root_flags;
++ uint32_t syssize;
++ uint16_t ram_size;
++ uint16_t vid_mode;
++ uint16_t root_dev;
++ uint16_t boot_flag;
++ uint16_t jump;
++ uint32_t header;
++#define HDR_MAGIC "HdrS"
++#define HDR_MAGIC_SZ 4
++ uint16_t version;
++#define VERSION(h,l) (((h)<<8) | (l))
++ uint32_t realmode_swtch;
++ uint16_t start_sys;
++ uint16_t kernel_version;
++ uint8_t type_of_loader;
++ uint8_t loadflags;
++ uint16_t setup_move_size;
++ uint32_t code32_start;
++ uint32_t ramdisk_image;
++ uint32_t ramdisk_size;
++ uint32_t bootsect_kludge;
++ uint16_t heap_end_ptr;
++ uint16_t _pad1;
++ uint32_t cmd_line_ptr;
++ uint32_t initrd_addr_max;
++ uint32_t kernel_alignment;
++ uint8_t relocatable_kernel;
++ uint8_t _pad2[3];
++ uint32_t cmdline_size;
++ uint32_t hardware_subarch;
++ uint64_t hardware_subarch_data;
++ uint32_t payload_offset;
++ uint32_t payload_length;
++} __attribute__((packed));
++
++extern struct xc_dom_loader elf_loader;
++
++static unsigned int payload_offset(struct setup_header *hdr)
++{
++ unsigned int off;
++
++ off = (hdr->setup_sects + 1) * 512;
++ off += hdr->payload_offset;
++ return off;
++}
++
++static int check_bzimage_kernel(struct xc_dom_image *dom, int verbose)
++{
++ struct setup_header *hdr;
++
++ if ( dom->kernel_blob == NULL )
++ {
++ if ( verbose )
++ xc_dom_panic(XC_INTERNAL_ERROR, "%s: no kernel image loaded\n",
++ __FUNCTION__);
++ return -EINVAL;
++ }
++ if ( dom->kernel_size < sizeof(struct setup_header) )
++ {
++ if ( verbose )
++ xc_dom_panic(XC_INTERNAL_ERROR, "%s: kernel image too small\n",
++ __FUNCTION__);
++ return -EINVAL;
++ }
++
++ hdr = dom->kernel_blob;
++
++ if ( memcmp(&hdr->header, HDR_MAGIC, HDR_MAGIC_SZ) != 0 )
++ {
++ if ( verbose )
++ xc_dom_panic(XC_INVALID_KERNEL, "%s: kernel is not a bzImage\n",
++ __FUNCTION__);
++ return -EINVAL;
++ }
++
++ if ( hdr->version < VERSION(2,8) )
++ {
++ if ( verbose )
++ xc_dom_panic(XC_INVALID_KERNEL, "%s: boot protocol too old
(%04x)\n",
++ __FUNCTION__, hdr->version);
++ return -EINVAL;
++ }
++
++ dom->kernel_blob = dom->kernel_blob + payload_offset(hdr);
++ dom->kernel_size = hdr->payload_length;
++
++ if ( xc_dom_try_gunzip(dom, &dom->kernel_blob, &dom->kernel_size) == -1 )
++ {
++ if ( verbose )
++ xc_dom_panic(XC_INVALID_KERNEL, "%s: unable to decompress
kernel\n",
++ __FUNCTION__);
++ return -EINVAL;
++ }
++
++ return elf_loader.probe(dom);
++}
++
++static int xc_dom_probe_bzimage_kernel(struct xc_dom_image *dom)
++{
++ return check_bzimage_kernel(dom, 0);
++}
++
++static int xc_dom_parse_bzimage_kernel(struct xc_dom_image *dom)
++{
++ return elf_loader.parser(dom);
++}
++
++static int xc_dom_load_bzimage_kernel(struct xc_dom_image *dom)
++{
++ return elf_loader.loader(dom);
++}
++
++static struct xc_dom_loader bzimage_loader = {
++ .name = "Linux bzImage",
++ .probe = xc_dom_probe_bzimage_kernel,
++ .parser = xc_dom_parse_bzimage_kernel,
++ .loader = xc_dom_load_bzimage_kernel,
++};
++
++static void __init register_loader(void)
++{
++ xc_dom_register_loader(&bzimage_loader);
++}
++
++/*
++ * Local variables:
++ * mode: C
++ * c-set-style: "BSD"
++ * c-basic-offset: 4
++ * tab-width: 4
++ * indent-tabs-mode: nil
++ * End:
++ */
+diff -r ff32e4cd61af -r db943e8d1051 tools/libxc/xc_dom_elfloader.c
+--- a/tools/libxc/xc_dom_elfloader.c Tue Apr 01 10:08:03 2008 +0100
++++ b/tools/libxc/xc_dom_elfloader.c Tue Apr 01 10:09:33 2008 +0100
+@@ -281,7 +281,7 @@ static int xc_dom_load_elf_kernel(struct
+
+ /* ------------------------------------------------------------------------ */
+
+-static struct xc_dom_loader elf_loader = {
++struct xc_dom_loader elf_loader = {
+ .name = "ELF-generic",
+ .probe = xc_dom_probe_elf_kernel,
+ .parser = xc_dom_parse_elf_kernel,
Index: xen-3/debian/rules.real
===================================================================
--- xen-3/debian/rules.real (revision 545)
+++ xen-3/debian/rules.real (working copy)
@@ -31,6 +31,8 @@
@rm -rf $(DIR)
mkdir $(DIR)
cp -a $(srcfiles) $(DIR)
+ # Workaround for quite misbehaviour WRT introducing new files (perms ==
0000 on the copy in .pc)
+ touch $(DIR)/tools/libxc/xc_dom_bzimageloader.c
cd $(DIR); QUILT_PATCHES=$(CURDIR)/debian/patches quilt --quiltrc
/dev/null push -a || test $$? = 2
touch $@
--- End Message ---
--- Begin Message ---
Source: xen-3
Source-Version: 3.2.1-2
We believe that the bug you reported is fixed in the latest version of
xen-3, which is due to be installed in the Debian FTP archive:
libxen-dev_3.2.1-2_amd64.deb
to pool/main/x/xen-3/libxen-dev_3.2.1-2_amd64.deb
libxenstore3.0_3.2.1-2_amd64.deb
to pool/main/x/xen-3/libxenstore3.0_3.2.1-2_amd64.deb
xen-3_3.2.1-2.diff.gz
to pool/main/x/xen-3/xen-3_3.2.1-2.diff.gz
xen-3_3.2.1-2.dsc
to pool/main/x/xen-3/xen-3_3.2.1-2.dsc
xen-docs-3.2_3.2.1-2_all.deb
to pool/main/x/xen-3/xen-docs-3.2_3.2.1-2_all.deb
xen-hypervisor-3.2-1-amd64_3.2.1-2_amd64.deb
to pool/main/x/xen-3/xen-hypervisor-3.2-1-amd64_3.2.1-2_amd64.deb
xen-utils-3.2-1_3.2.1-2_amd64.deb
to pool/main/x/xen-3/xen-utils-3.2-1_3.2.1-2_amd64.deb
xenstore-utils_3.2.1-2_amd64.deb
to pool/main/x/xen-3/xenstore-utils_3.2.1-2_amd64.deb
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Bastian Blank <[EMAIL PROTECTED]> (supplier of updated xen-3 package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.8
Date: Sat, 28 Jun 2008 11:30:43 +0200
Source: xen-3
Binary: xen-docs-3.2 libxenstore3.0 libxen-dev xenstore-utils xen-utils-3.2-1
xen-hypervisor-3.2-1-amd64 xen-hypervisor-3.2-1-i386
xen-hypervisor-3.2-1-i386-nonpae
Architecture: source all amd64
Version: 3.2.1-2
Distribution: unstable
Urgency: low
Maintainer: Debian Xen Team <[EMAIL PROTECTED]>
Changed-By: Bastian Blank <[EMAIL PROTECTED]>
Description:
libxen-dev - Public headers and libs for Xen
libxenstore3.0 - Xenstore communications library for Xen
xen-docs-3.2 - Documentation for Xen
xen-hypervisor-3.2-1-amd64 - The Xen Hypervisor on AMD64
xen-hypervisor-3.2-1-i386 - The Xen Hypervisor on i386
xen-hypervisor-3.2-1-i386-nonpae - The Xen Hypervisor on i386 without pae
xen-utils-3.2-1 - XEN administrative tools
xenstore-utils - Xenstore utilities for Xen
Closes: 474509 476366 487095
Changes:
xen-3 (3.2.1-2) unstable; urgency=low
.
* Use e2fslibs based ext2 support for pygrub. (closes: #476366)
* Fix missing checks in pvfb code.
See CVE-2008-1952. (closes: #487095)
* Add support for loading bzImage files. (closes: #474509)
* Enable TLS support in ioemu code.
* Drop libcrypto usage because of GPL-incompatibility.
* Remove AES code from blktap drivers. Considered broken.
Checksums-Sha1:
c554a791c3f7dc1bed082192d00e37848a88a947 1599 xen-3_3.2.1-2.dsc
92388212fee2582b2d62df9b9c05a650a02fb3e3 54201 xen-3_3.2.1-2.diff.gz
1ddc8e09b1ae2db6467b62ad3a2804dc4ab84aca 1198380 xen-docs-3.2_3.2.1-2_all.deb
fff42ccf3ab065a531230c8a701017bcbba592c3 418614
xen-hypervisor-3.2-1-amd64_3.2.1-2_amd64.deb
ea5b8522c4077c9e2dafecd4eac3a7de379b910e 197660 libxen-dev_3.2.1-2_amd64.deb
211fb10460b1282e560ddfe036c971091b7f592b 19360 libxenstore3.0_3.2.1-2_amd64.deb
6465d930425e260e36debdddba07979c0a192084 1070516
xen-utils-3.2-1_3.2.1-2_amd64.deb
b358e53c77ede134c0d1c2ab3b4b68fa496792fd 22566 xenstore-utils_3.2.1-2_amd64.deb
Checksums-Sha256:
69b20ecc25fef7f04c9547a0608e8a7bce243f27f818280addac979fe1180edd 1599
xen-3_3.2.1-2.dsc
63d4117c4171f80babeec1ff28cdd5a48c70e894dcaa3869c30aa9e72b77b86e 54201
xen-3_3.2.1-2.diff.gz
3051f89b77cff4be4b0286a90570fb7ff38cac928c8887f4182c7bcf6e519cb0 1198380
xen-docs-3.2_3.2.1-2_all.deb
acd6ea5866572979a91924dca7931d2cba7150eb898e5667f447e0769336b227 418614
xen-hypervisor-3.2-1-amd64_3.2.1-2_amd64.deb
37b50625df1c020555f885ae1dca56e47fa892a922ac113816cd5655dcb16c13 197660
libxen-dev_3.2.1-2_amd64.deb
8f406296db2af09bc595610b5d8cfaa56c858394928255c97becb7544cffbb36 19360
libxenstore3.0_3.2.1-2_amd64.deb
4ab689b7bd57b4885b4f131606f34f5b56ad56d5d39d7621eb896657a85cfab7 1070516
xen-utils-3.2-1_3.2.1-2_amd64.deb
73ff1e710be16f2732caada6a66c6af90541bd94a9444d8dd24073fbdd7fd61e 22566
xenstore-utils_3.2.1-2_amd64.deb
Files:
e00ffdb6939f517d8d5afed6b418f051 1599 misc extra xen-3_3.2.1-2.dsc
df6ffb368b0ce6e3723ec823407bfb52 54201 misc extra xen-3_3.2.1-2.diff.gz
963fd1aab43d22e745de2a93102ce26f 1198380 doc extra xen-docs-3.2_3.2.1-2_all.deb
6ac0ceb062f16a781eba3dcb4858b16f 418614 misc extra
xen-hypervisor-3.2-1-amd64_3.2.1-2_amd64.deb
94df8b325e502ee549611e603ec8dac7 197660 libdevel extra
libxen-dev_3.2.1-2_amd64.deb
b85bef2139a4ee76fea154f0edae08b4 19360 libs extra
libxenstore3.0_3.2.1-2_amd64.deb
d10f8282dbf0f254a1f26a5f89ac03e9 1070516 misc extra
xen-utils-3.2-1_3.2.1-2_amd64.deb
4523b836a00dc3f700662c67d72f9256 22566 admin extra
xenstore-utils_3.2.1-2_amd64.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAkhmBm0ACgkQxWtQqFixGB4ENACeLdidWsyiyy5Gxvs6fSPV+Pbz
57oAnjrl6QRi6xlYQQQBL7b94ulaZ19e
=3U/n
-----END PGP SIGNATURE-----
--- End Message ---