From 45c1cabef65daaf0d500df360a46f192ca82eafc Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: May 14 2013 21:32:09 +0000 Subject: Fix stream operations like screenshot (bz #960879) --- diff --git a/0002-Fix-iohelper-usage-with-streams-opened-for-read.patch b/0002-Fix-iohelper-usage-with-streams-opened-for-read.patch new file mode 100644 index 0000000..622dafd --- /dev/null +++ b/0002-Fix-iohelper-usage-with-streams-opened-for-read.patch @@ -0,0 +1,34 @@ +From a2214c5257d3bd7b086ce04aca1648e8ff05ee96 Mon Sep 17 00:00:00 2001 +Message-Id: +From: "Daniel P. Berrange" +Date: Fri, 10 May 2013 14:45:05 +0100 +Subject: [PATCH] Fix iohelper usage with streams opened for read + +In b2878ed860ceceec3cd6481424fed0b543b687cd we added the O_NOCTTY +flag when opening files in the stream code. Unfortunately a later +piece of code was comparing the flags == O_RDONLY, without masking +out the non-access mode flags. This broke the iohelper when used +with streams for read, since it caused us to attach the stream +output pipe to the stream input FD instead of output FD :-( + +Signed-off-by: Daniel P. Berrange +--- + src/fdstream.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/fdstream.c b/src/fdstream.c +index 6f8ce53..a9a4851 100644 +--- a/src/fdstream.c ++++ b/src/fdstream.c +@@ -641,7 +641,7 @@ virFDStreamOpenFileInternal(virStreamPtr st, + virCommandTransferFD(cmd, fd); + virCommandAddArgFormat(cmd, "%d", fd); + +- if (oflags == O_RDONLY) { ++ if ((oflags & O_ACCMODE) == O_RDONLY) { + childfd = fds[1]; + fd = fds[0]; + virCommandSetOutputFD(cmd, &childfd); +-- +1.8.2.1 + diff --git a/libvirt.spec b/libvirt.spec index 671cf83..0acf734 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -341,7 +341,7 @@ Summary: Library providing a simple virtualization API Name: libvirt Version: 1.0.5 -Release: 2%{?dist}%{?extra_release} +Release: 3%{?dist}%{?extra_release} License: LGPLv2+ Group: Development/Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root @@ -353,6 +353,8 @@ URL: http://libvirt.org/ Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz Patch1: libvirt-1.0.5-fix-network-driver-startup-qemu-session.patch +# Fix stream operations like screenshot (bz #960879) +Patch0002: 0002-Fix-iohelper-usage-with-streams-opened-for-read.patch %if %{with_libvirtd} Requires: libvirt-daemon = %{version}-%{release} @@ -1084,6 +1086,8 @@ of recent versions of Linux (and other OSes). %prep %setup -q %patch1 -p1 +# Fix stream operations like screenshot (bz #960879) +%patch0002 -p1 %build %if ! %{with_xen} @@ -2001,6 +2005,9 @@ fi %endif %changelog +* Tue May 14 2013 Cole Robinson - 1.0.5-3 +- Fix stream operations like screenshot (bz #960879) + * Fri May 3 2013 Richard W.M. Jones - 1.0.5-2 - Fix network driver when using qemu:///session (bz #958907).