From afaefd001e3447b2f802710ce3f8d8ac52f8449a Mon Sep 17 00:00:00 2001 From: amitshah Date: Jun 22 2010 08:20:00 +0000 Subject: Add vvfat hardening patch from upstream; fixes crash for bug 605202 --- diff --git a/block-vvfat.c-fix-warnings-with-_FORTIFY_SOURCE.patch b/block-vvfat.c-fix-warnings-with-_FORTIFY_SOURCE.patch new file mode 100644 index 0000000..d3cdf2e --- /dev/null +++ b/block-vvfat.c-fix-warnings-with-_FORTIFY_SOURCE.patch @@ -0,0 +1,63 @@ +From e69a45b96be09d25429175fa8f0f85e3d7fab5a8 Mon Sep 17 00:00:00 2001 +Message-Id: +From: Kirill A. Shutemov +Date: Wed, 20 Jan 2010 00:56:14 +0100 +Subject: [PATCH] block/vvfat.c: fix warnings with _FORTIFY_SOURCE + +CC block/vvfat.o +cc1: warnings being treated as errors +block/vvfat.c: In function 'commit_one_file': +block/vvfat.c:2259: error: ignoring return value of 'ftruncate', declared with attribute warn_unused_result +make: *** [block/vvfat.o] Error 1 + CC block/vvfat.o +In file included from /usr/include/stdio.h:912, + from ./qemu-common.h:19, + from block/vvfat.c:27: +In function 'snprintf', + inlined from 'init_directories' at block/vvfat.c:871, + inlined from 'vvfat_open' at block/vvfat.c:1068: +/usr/include/bits/stdio2.h:65: error: call to __builtin___snprintf_chk will always overflow destination buffer +make: *** [block/vvfat.o] Error 1 + +Signed-off-by: Kirill A. Shutemov +Signed-off-by: Juan Quintela +Signed-off-by: Anthony Liguori +(cherry picked from commit 2dedf83ef0cc3463783d6b71bf1b25476f691f3a) + +This fixes Fedora bug 605202. + +Signed-off-by: Amit Shah +--- + block/vvfat.c | 9 +++++++-- + 1 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/block/vvfat.c b/block/vvfat.c +index c1acb35..592d6e6 100644 +--- a/block/vvfat.c ++++ b/block/vvfat.c +@@ -868,7 +868,8 @@ static int init_directories(BDRVVVFATState* s, + { + direntry_t* entry=array_get_next(&(s->directory)); + entry->attributes=0x28; /* archive | volume label */ +- snprintf((char*)entry->name,11,"QEMU VVFAT"); ++ memcpy(entry->name,"QEMU VVF",8); ++ memcpy(entry->extension,"AT ",3); + } + + /* Now build FAT, and write back information into directory */ +@@ -2256,7 +2257,11 @@ static int commit_one_file(BDRVVVFATState* s, + c = c1; + } + +- ftruncate(fd, size); ++ if (ftruncate(fd, size)) { ++ perror("ftruncate()"); ++ close(fd); ++ return -4; ++ } + close(fd); + + return commit_mappings(s, first_cluster, dir_index); +-- +1.7.0.1 + diff --git a/qemu.spec b/qemu.spec index e1fb131..88973a7 100644 --- a/qemu.spec +++ b/qemu.spec @@ -1,7 +1,7 @@ Summary: QEMU is a FAST! processor emulator Name: qemu Version: 0.12.3 -Release: 6%{?dist} +Release: 7%{?dist} # Epoch because we pushed a qemu-1.0 package Epoch: 2 License: GPLv2+ and LGPLv2+ and BSD @@ -89,7 +89,7 @@ Patch52: 0052-virtio-console-patches.patch Patch53: 0053-net-remove-NICInfo.bootable-field.patch Patch54: 0054-net-remove-broken-net_set_boot_mask-boot-device-vali.patch Patch55: 0055-boot-remove-unused-boot_devices_bitmap-variable.patch - +Patch56: block-vvfat.c-fix-warnings-with-_FORTIFY_SOURCE.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: SDL-devel zlib-devel which texi2html gnutls-devel cyrus-sasl-devel @@ -336,6 +336,7 @@ such as kvmtrace and kvm_stat. %patch53 -p1 %patch54 -p1 %patch55 -p1 +%patch56 -p1 %build # By default we build everything, but allow x86 to build a minimal version @@ -639,6 +640,9 @@ fi %{_mandir}/man1/qemu-img.1* %changelog +* Tue Jun 22 2010 Amit Shah - 2:0.12.3-7 +- Add vvfat hardening patch from upstream (#605202) + * Fri Apr 23 2010 Justin M. Forbes - 2:0.12.3-6 - Change requires to the noarch seabios-bin - Add ownership of docdir to qemu-common (#572110)