On Fri, Feb 24, 2012 at 03:02:10PM -0500, Brad Smith wrote: > Here is an update to QEMU 1.0.1.
works here on i386-current (rthreads AND vmmap patches) -rwxr-xr-x 1 root wheel 8.6M Mar 5 16:33 /bsd* tested a win2k3 vm in vnc server mode and tested openbsd vm in regular sdl output mode: qemu-system-i386 \ -m 768 \ -hda win2k3.x86.qcow2 \ -net nic,model=rtl8139 -net user \ -usbdevice tablet \ -vga vmware \ -vnc :0,lossy \ $@ qemu-system-i386 \ -m 512 \ -hda ./openbsd.qcow2 \ -vga vmware \ -net user -net nic,model=rtl8139 \ $@ -ryan > > > Index: Makefile > =================================================================== > RCS file: /home/cvs/ports/emulators/qemu/Makefile,v > retrieving revision 1.84 > diff -u -p -r1.84 Makefile > --- Makefile 2 Feb 2012 22:07:33 -0000 1.84 > +++ Makefile 24 Feb 2012 20:01:07 -0000 > @@ -1,14 +1,13 @@ > # $OpenBSD: Makefile,v 1.84 2012/02/02 22:07:33 sthen Exp $ > > -ONLY_FOR_ARCHS= amd64 i386 mips64 mips64el powerpc sparc sparc64 > +ONLY_FOR_ARCHS= amd64 arm hppa i386 mips64 mips64el powerpc sparc > sparc64 > +BROKEN-hppa= compiler bug with gcc 4.2 > > COMMENT= multi system emulator > > -DISTNAME= qemu-1.0 > -REVISION= 1 > +DISTNAME= qemu-1.0.1 > CATEGORIES= emulators > -MASTER_SITES= http://wiki.qemu.org/download/ \ > - http://comstyle.com/source/ > +MASTER_SITES= http://wiki.qemu.org/download/ > > HOMEPAGE= http://www.qemu.org/ > > Index: distinfo > =================================================================== > RCS file: /home/cvs/ports/emulators/qemu/distinfo,v > retrieving revision 1.18 > diff -u -p -r1.18 distinfo > --- distinfo 12 Dec 2011 10:56:56 -0000 1.18 > +++ distinfo 17 Feb 2012 20:59:39 -0000 > @@ -1,5 +1,5 @@ > -MD5 (qemu-1.0.tar.gz) = pks2BnoZFFEyOw0067RJVA== > -RMD160 (qemu-1.0.tar.gz) = OmCu9s/rumiWvbEsmVJdpUVhcv0= > -SHA1 (qemu-1.0.tar.gz) = fcsbNRZVTW2JnXSIzURNu3ch/O4= > -SHA256 (qemu-1.0.tar.gz) = R2dLfaVZ1eG0TMQBr5rFrZYtFOnu3hJWexPkuEGYlzc= > -SIZE (qemu-1.0.tar.gz) = 10848714 > +MD5 (qemu-1.0.1.tar.gz) = Xv0QkfAeO8Mb/ewnuO3rAA== > +RMD160 (qemu-1.0.1.tar.gz) = 3O80TxUOI4iAhxdo8vB8y26OzOc= > +SHA1 (qemu-1.0.1.tar.gz) = TQi1qDU4/NeyIr7G8cWE2o0SSXo= > +SHA256 (qemu-1.0.1.tar.gz) = GYkC4QeCUX9gfJ7Z5im153COo56zc+0+w/HIoWnZg3g= > +SIZE (qemu-1.0.1.tar.gz) = 10853005 > Index: patches/patch-configure > =================================================================== > RCS file: /home/cvs/ports/emulators/qemu/patches/patch-configure,v > retrieving revision 1.21 > diff -u -p -r1.21 patch-configure > --- patches/patch-configure 12 Dec 2011 10:56:56 -0000 1.21 > +++ patches/patch-configure 17 Feb 2012 21:03:10 -0000 > @@ -1,6 +1,6 @@ > $OpenBSD: patch-configure,v 1.21 2011/12/12 10:56:56 sthen Exp $ > ---- configure.orig Mon Nov 28 17:22:15 2011 > -+++ configure Mon Nov 28 18:32:45 2011 > +--- configure.orig Fri Feb 17 14:45:39 2012 > ++++ configure Fri Feb 17 16:02:57 2012 > @@ -235,13 +235,11 @@ sdl_config="${SDL_CONFIG-${cross_prefix}sdl-config}" > > # default flags for all hosts > @@ -15,15 +15,6 @@ $OpenBSD: patch-configure,v 1.21 2011/12 > > # make source path absolute > source_path=`cd "$source_path"; pwd` > -@@ -1116,7 +1114,7 @@ fi > - > - if test "$pie" = ""; then > - case "$cpu-$targetos" in > -- i386-Linux|x86_64-Linux) > -+ i386-Linux|x86_64-Linux|i386-OpenBSD|x86_64-OpenBSD) > - ;; > - *) > - pie="no" > @@ -2684,8 +2682,9 @@ fi > # End of CC checks > # After here, no more $cc or $ld runs > Index: patches/patch-hw_e1000_c > =================================================================== > RCS file: patches/patch-hw_e1000_c > diff -N patches/patch-hw_e1000_c > --- patches/patch-hw_e1000_c 2 Feb 2012 22:07:33 -0000 1.4 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,26 +0,0 @@ > -$OpenBSD: patch-hw_e1000_c,v 1.4 2012/02/02 22:07:33 sthen Exp $ > - > -Bounds packet size against buffer size, otherwise we can write beyond > -the buffer and corrupt memory.  CVE-2012-0029. > - > -http://git.qemu.org/?p=qemu.git;a=commitdiff;h=65f82df0d7a71ce1b10cd4c5ab08888d176ac840 > - > ---- hw/e1000.c.orig Thu Feb 2 20:07:37 2012 > -+++ hw/e1000.c Thu Feb 2 20:11:43 2012 > -@@ -466,6 +466,8 @@ process_tx_desc(E1000State *s, struct e1000_tx_desc *d > - bytes = split_size; > - if (tp->size + bytes > msh) > - bytes = msh - tp->size; > -+ > -+ bytes = MIN(sizeof(tp->data) - tp->size, bytes); > - pci_dma_read(&s->dev, addr, tp->data + tp->size, bytes); > - if ((sz = tp->size + bytes) >= hdr && tp->size < hdr) > - memmove(tp->header, tp->data, hdr); > -@@ -481,6 +483,7 @@ process_tx_desc(E1000State *s, struct e1000_tx_desc *d > - // context descriptor TSE is not set, while data descriptor TSE is > set > - DBGOUT(TXERR, "TCP segmentaion Error\n"); > - } else { > -+ split_size = MIN(sizeof(tp->data) - tp->size, split_size); > - pci_dma_read(&s->dev, addr, tp->data + tp->size, split_size); > - tp->size += split_size; > - } > Index: patches/patch-target-i386_translate_c > =================================================================== > RCS file: patches/patch-target-i386_translate_c > diff -N patches/patch-target-i386_translate_c > --- patches/patch-target-i386_translate_c 12 Dec 2011 10:56:56 -0000 > 1.6 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,32 +0,0 @@ > -$OpenBSD: patch-target-i386_translate_c,v 1.6 2011/12/12 10:56:56 sthen Exp $ > ---- target-i386/translate.c.orig Mon Nov 7 16:24:56 2011 > -+++ target-i386/translate.c Mon Nov 7 17:39:18 2011 > -@@ -4870,20 +4870,24 @@ static target_ulong disas_insn(DisasContext *s, > target > - tcg_gen_sub_tl(t2, cpu_regs[R_EAX], t0); > - gen_extu(ot, t2); > - tcg_gen_brcondi_tl(TCG_COND_EQ, t2, 0, label1); > -+ label2 = gen_new_label(); > - if (mod == 3) { > -- label2 = gen_new_label(); > - gen_op_mov_reg_v(ot, R_EAX, t0); > - tcg_gen_br(label2); > - gen_set_label(label1); > - gen_op_mov_reg_v(ot, rm, t1); > -- gen_set_label(label2); > - } else { > -- tcg_gen_mov_tl(t1, t0); > -+ /* perform no-op store cycle like physical cpu; must be > -+ before changing accumulator to ensure idempotency if > -+ the store faults and the instruction is restarted > -+ */ > -+ gen_op_st_v(ot + s->mem_index, t0, a0); > - gen_op_mov_reg_v(ot, R_EAX, t0); > -+ tcg_gen_br(label2); > - gen_set_label(label1); > -- /* always store */ > - gen_op_st_v(ot + s->mem_index, t1, a0); > - } > -+ gen_set_label(label2); > - tcg_gen_mov_tl(cpu_cc_src, t0); > - tcg_gen_mov_tl(cpu_cc_dst, t2); > - s->cc_op = CC_OP_SUBB + ot; > > -- > This message has been scanned for viruses and > dangerous content by MailScanner, and is > believed to be clean. >