Hello community, here is the log from the commit of package kvm for openSUSE:Factory checked in at 2012-01-25 10:37:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kvm (Old) and /work/SRC/openSUSE:Factory/.kvm.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kvm", Maintainer is "brog...@suse.com" Changes: -------- --- /work/SRC/openSUSE:Factory/kvm/kvm.changes 2012-01-17 16:10:13.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.kvm.new/kvm.changes 2012-01-25 10:37:43.000000000 +0100 @@ -1,0 +2,5 @@ +Mon Jan 23 19:15:54 UTC 2012 - brog...@suse.com + +- avoid buffer overflow in e1000 device emulation (bnc#740165) + +------------------------------------------------------------------- New: ---- kvm-qemu-preXX-e1000-check-for-overflow-whenever-issuing-PCI-dma-reads.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kvm.spec ++++++ --- /var/tmp/diff_new_pack.E7dmRi/_old 2012-01-25 10:37:45.000000000 +0100 +++ /var/tmp/diff_new_pack.E7dmRi/_new 2012-01-25 10:37:45.000000000 +0100 @@ -136,6 +136,7 @@ Patch104: kvm-qemu-madvise-hugepages.patch Patch105: kvm-qemu-preXX-dictzip3.patch Patch106: kvm-qemu-preXX-g_thread_init-users-don-t-call-it-if-glib-2.31.patch +Patch107: kvm-qemu-preXX-e1000-check-for-overflow-whenever-issuing-PCI-dma-reads.patch Patch150: qemu-kvm-common-code-fixes-for-s390-build.patch @@ -230,6 +231,7 @@ %patch104 -p1 %patch105 -p1 %patch106 -p1 +%patch107 -p1 %patch150 -p1 ++++++ kvm-qemu-preXX-e1000-check-for-overflow-whenever-issuing-PCI-dma-reads.patch ++++++ >From 7fff7710abc9893d8dce5dbad1e7093caf521132 Mon Sep 17 00:00:00 2001 From: Anthony Liguori <aligu...@us.ibm.com> Date: Wed, 4 Jan 2012 14:50:45 -0600 Subject: e1000: check for overflow whenever issuing PCI dma reads Reported-by: Nicolae Mogoreanu <m...@google.com> Signed-off-by: Anthony Liguori <aligu...@us.ibm.com> --- hw/e1000.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) Index: qemu-kvm-0.12.5/hw/e1000.c =================================================================== --- qemu-kvm-0.12.5.orig/hw/e1000.c +++ qemu-kvm-0.12.5/hw/e1000.c @@ -466,6 +466,8 @@ process_tx_desc(E1000State *s, struct e1000_tx_desc *dp) 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 *dp) // 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; } -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org