Update to QEMU 1.4.1. Includes a fix for CVE-2013-1922.

ok sthen@
This commit is contained in:
brad 2013-04-19 02:47:43 +00:00
parent d5c9aab9b1
commit e1fc1f0ef4
6 changed files with 164 additions and 24 deletions

View File

@ -1,11 +1,10 @@
# $OpenBSD: Makefile,v 1.103 2013/04/14 20:28:56 brad Exp $
# $OpenBSD: Makefile,v 1.104 2013/04/19 02:47:43 brad Exp $
ONLY_FOR_ARCHS= amd64 i386 powerpc sparc64
COMMENT= multi system emulator
DISTNAME= qemu-1.4.0
REVISION= 0
DISTNAME= qemu-1.4.1
CATEGORIES= emulators
MASTER_SITES= http://wiki.qemu.org/download/
EXTRACT_SUFX= .tar.bz2
@ -63,8 +62,7 @@ CONFIGURE_ARGS= --prefix=${PREFIX} \
--disable-spice \
--disable-uuid \
--disable-usb-redir \
--disable-vnc-sasl \
--with-coroutine=sigaltstack
--disable-vnc-sasl
FLAVORS= debug
FLAVOR?=

View File

@ -1,2 +1,2 @@
SHA256 (qemu-1.4.0.tar.bz2) = BmKX7XdAj7dYiInCcahc88JZrVXJOTFZiOYGLXcI7ag=
SIZE (qemu-1.4.0.tar.bz2) = 10419510
SHA256 (qemu-1.4.1.tar.bz2) = dQY6kyYiFgfeNZnon7WvgPLYCA3cVcolP/8ROENDLfE=
SIZE (qemu-1.4.1.tar.bz2) = 10417738

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-Makefile_objs,v 1.1 2013/04/19 02:47:43 brad Exp $
--- Makefile.objs.orig Fri Feb 15 18:05:35 2013
+++ Makefile.objs Sun Apr 14 04:06:36 2013
@@ -16,16 +16,7 @@ block-obj-y += qapi-types.o qapi-visit.o
block-obj-y += qemu-coroutine.o qemu-coroutine-lock.o qemu-coroutine-io.o
block-obj-y += qemu-coroutine-sleep.o
-ifeq ($(CONFIG_UCONTEXT_COROUTINE),y)
-block-obj-$(CONFIG_POSIX) += coroutine-ucontext.o
-else
-ifeq ($(CONFIG_SIGALTSTACK_COROUTINE),y)
-block-obj-$(CONFIG_POSIX) += coroutine-sigaltstack.o
-else
-block-obj-$(CONFIG_POSIX) += coroutine-gthread.o
-endif
-endif
-block-obj-$(CONFIG_WIN32) += coroutine-win32.o
+block-obj-y += coroutine-$(CONFIG_COROUTINE_BACKEND).o
ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy)
# Lots of the fsdev/9pcode is pulled in by vl.c via qemu_fsdev_add.

View File

@ -1,7 +1,95 @@
$OpenBSD: patch-configure,v 1.30 2013/03/20 00:46:01 brad Exp $
--- configure.orig Fri Feb 1 20:21:48 2013
+++ configure Sat Feb 2 07:47:01 2013
@@ -3158,8 +3158,6 @@ fi
$OpenBSD: patch-configure,v 1.31 2013/04/19 02:47:43 brad Exp $
--- configure.orig Mon Apr 15 16:25:18 2013
+++ configure Mon Apr 15 20:55:05 2013
@@ -3035,34 +3035,67 @@ fi
##########################################
# check and set a backend for coroutine
-# default is ucontext, but always fallback to gthread
-# windows autodetected by make
-if test "$coroutine" = "" -o "$coroutine" = "ucontext"; then
- if test "$darwin" != "yes"; then
- cat > $TMPC << EOF
+# We prefer ucontext, but it's not always possible. The fallback
+# is sigcontext. gthread is not selectable except explicitly, because
+# it is not functional enough to run QEMU proper. (It is occasionally
+# useful for debugging purposes.) On Windows the only valid backend
+# is the Windows-specific one.
+
+ucontext_works=no
+if test "$darwin" != "yes"; then
+ cat > $TMPC << EOF
#include <ucontext.h>
#ifdef __stub_makecontext
#error Ignoring glibc stub makecontext which will always fail
#endif
int main(void) { makecontext(0, 0, 0); return 0; }
EOF
- if compile_prog "" "" ; then
- coroutine_backend=ucontext
- else
- coroutine_backend=gthread
- fi
+ if compile_prog "" "" ; then
+ ucontext_works=yes
fi
-elif test "$coroutine" = "gthread" ; then
- coroutine_backend=gthread
-elif test "$coroutine" = "windows" ; then
- coroutine_backend=windows
-elif test "$coroutine" = "sigaltstack" ; then
- coroutine_backend=sigaltstack
+fi
+
+if test "$coroutine" = ""; then
+ if test "$mingw32" = "yes"; then
+ coroutine=win32
+ elif test "$ucontext_works" = "yes"; then
+ coroutine=ucontext
+ else
+ coroutine=sigaltstack
+ fi
else
- echo
- echo "Error: unknown coroutine backend $coroutine"
- echo
- exit 1
+ case $coroutine in
+ windows)
+ if test "$mingw32" != "yes"; then
+ echo
+ echo "Error: 'windows' coroutine backend only valid for Windows"
+ echo
+ exit 1
+ fi
+ # Unfortunately the user visible backend name doesn't match the
+ # coroutine-*.c filename for this case, so we have to adjust it here.
+ coroutine=win32
+ ;;
+ ucontext)
+ if test "$ucontext_works" != "yes"; then
+ feature_not_found "ucontext"
+ fi
+ ;;
+ gthread|sigaltstack)
+ if test "$mingw32" = "yes"; then
+ echo
+ echo "Error: only the 'windows' coroutine backend is valid for Windows"
+ echo
+ exit 1
+ fi
+ ;;
+ *)
+ echo
+ echo "Error: unknown coroutine backend $coroutine"
+ echo
+ exit 1
+ ;;
+ esac
fi
##########################################
@@ -3164,8 +3197,6 @@ fi
if test "$gcov" = "yes" ; then
CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS"
LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS"
@ -10,3 +98,25 @@ $OpenBSD: patch-configure,v 1.30 2013/03/20 00:46:01 brad Exp $
fi
@@ -3345,7 +3376,7 @@ echo "OpenGL support $opengl"
echo "libiscsi support $libiscsi"
echo "build guest agent $guest_agent"
echo "seccomp support $seccomp"
-echo "coroutine backend $coroutine_backend"
+echo "coroutine backend $coroutine"
echo "GlusterFS support $glusterfs"
echo "virtio-blk-data-plane $virtio_blk_data_plane"
echo "gcov $gcov_tool"
@@ -3668,11 +3699,7 @@ if test "$rbd" = "yes" ; then
echo "CONFIG_RBD=y" >> $config_host_mak
fi
-if test "$coroutine_backend" = "ucontext" ; then
- echo "CONFIG_UCONTEXT_COROUTINE=y" >> $config_host_mak
-elif test "$coroutine_backend" = "sigaltstack" ; then
- echo "CONFIG_SIGALTSTACK_COROUTINE=y" >> $config_host_mak
-fi
+echo "CONFIG_COROUTINE_BACKEND=$coroutine" >> $config_host_mak
if test "$open_by_handle_at" = "yes" ; then
echo "CONFIG_OPEN_BY_HANDLE=y" >> $config_host_mak

View File

@ -1,13 +0,0 @@
$OpenBSD: patch-include_qemu_timer_h,v 1.1 2013/04/01 13:40:32 brad Exp $
--- include/qemu/timer.h.orig Sun Mar 31 14:23:42 2013
+++ include/qemu/timer.h Sun Mar 31 14:24:08 2013
@@ -118,7 +118,8 @@ extern int use_rt_clock;
static inline int64_t get_clock(void)
{
#if defined(__linux__) || (defined(__FreeBSD__) && __FreeBSD_version >= 500000) \
- || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
+ || defined(__DragonFly__) || defined(__FreeBSD_kernel__) \
+ || defined(__OpenBSD__)
if (use_rt_clock) {
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts);

View File

@ -0,0 +1,24 @@
$OpenBSD: patch-tests_Makefile,v 1.1 2013/04/19 02:47:43 brad Exp $
--- tests/Makefile.orig Sun Apr 14 04:09:05 2013
+++ tests/Makefile Sun Apr 14 04:09:33 2013
@@ -24,19 +24,7 @@ gcov-files-test-string-input-visitor-y = qapi/string-i
check-unit-y += tests/test-string-output-visitor$(EXESUF)
gcov-files-test-string-output-visitor-y = qapi/string-output-visitor.c
check-unit-y += tests/test-coroutine$(EXESUF)
-ifeq ($(CONFIG_WIN32),y)
-gcov-files-test-coroutine-y = coroutine-win32.c
-else
-ifeq ($(CONFIG_UCONTEXT_COROUTINE),y)
-gcov-files-test-coroutine-y = coroutine-ucontext.c
-else
-ifeq ($(CONFIG_SIGALTSTACK_COROUTINE),y)
-gcov-files-test-coroutine-y = coroutine-sigaltstack.c
-else
-gcov-files-test-coroutine-y = coroutine-gthread.c
-endif
-endif
-endif
+gcov-files-test-coroutine-y = coroutine-$(CONFIG_COROUTINE_BACKEND).c
check-unit-y += tests/test-visitor-serialization$(EXESUF)
check-unit-y += tests/test-iov$(EXESUF)
gcov-files-test-iov-y = util/iov.c