Chapter 3. RHEA-2016:0377 rhevm-spice-client

The bugs contained in this chapter are addressed by advisory RHEA-2016:0377. Further information about this advisory is available at https://rhn.redhat.com/errata/RHEA-2016-0377.html.

mingw-virt-viewer

BZ#1065936
This release adds remote-viewer support for proxy authentication. With this update, SPICE can connect via a proxy that requires authentication (such as user name and password) in order to allow only authenticated users to connect via the proxy. As a result, when remote-viewer is configured to use a proxy requiring user authentication, the SPICE client passes authentication information to the proxy, and users connecting with the proxy are authenticated.
BZ#1155764
Previously, the Red Hat Enterprise Virtualization Manager always opened the virt-viewer client in full screen mode, even if the client was not configured to open in full screen. This occurred because the CONTROLLER_AUTO_DISPLAY_RES flag was automatically set. This has been fixed and the Red Hat Enterprise Virtualization Manager now ignores CONTROLLER_AUTO_DISPLAY_RES flag, and the client now opens in full screen mode only when the CONTROLLER_SET_FULL_SCREEN flag is set.
BZ#1146016
Previously, virt-viewer was installed per user (with the ALLUSERS property unspecified); when virt-viewer was updated, the Windows installer could not find the remote-viewer.exe client binary associated with the appropriate MIME type. To work around this, users needed to set the path to the remote-viewer.exe executable manually to access virtual machines managed by Red Hat Enterprise Virtualization Manager that used the Native Client console option. This was problematic for users without administrator access, so virt-viewer is now installed per-machine (ALLUSERS is now explicitly set to "1"). As a result, after an upgrade, users without administrator access can run the newly installed executable, and the Native Client console option works for all users.

Note: Red Hat recommends uninstalling previous virt-viewer packages and cleaning up the registry for all users before installing this version.
BZ#1201387
Isochronous devices (for example, a webcam and headset) previously caused remote-viewer to freeze temporarily due to high memory consumption, which was a result of poor buffer management in the virt-viewer client. This issue has now been improved by adding a buffer limit in the client, while still allowing enough data to be sent to update the remote device. Data can now be sent over a low bandwidth network without high memory consumption in the client.
BZ#1244880
Previously, Windows did not use the API to provide coordinates when using multiple monitors, which caused the virtual monitors to change position. Now, Windows uses the API for managing monitor position, so monitors stay in the expected position.
BZ#1169286
Previously, the shift keys behaved incorrectly on Windows machines accessed with virt-viewer. When both shift keys were pressed at the same time and then released, Windows sent only one release key event, causing the SPICE client to think the other shift key is still pressed, and the guest to input capital letters. This has been fixed so GDK sends an extra release event so that both shift keys are released, and guest input is as expected.
BZ#1136846
Previously, users could not control a Windows 7 virtual machine's sound volume with the guest volume controls. This occurred because the  Windows client's audio back-end (GStreamer) did not have mute and volume control capabilities for playback and record. This was fixed by updating GStreamer to version 1.0, and implementing volume and mute capabilities in the directsoundsrc element. Volume control on Windows virtual machines now works as expected.
BZ#1275343
Previously, remote-viewer enabled more displays than necessary when running in full screen mode. This was fixed, and remote-viewer now only enables the same number of displays as the user's monitors when started in full screen mode.
BZ#1099327
Previously, Red Hat Enterprise Linux 7 hosts failed to correctly redirect USB devices to virtual machines. This occurred because of the channel creation order, where USBREDIR channel(s) get added to the session after the display channel. Since virt-viewer checked for a USBREDIR channel immediately as the display channel was added to the session, this returned a FALSE result for USBREDIR-capable virtual machines. This fix refactors the code so as to not depend on channel creation order, and virt-viewer no longer fails to redirect USB devices to virtual machines.
BZ#1181289
With this release, the virt-viewer package has been updated and is now based on virt-viewer 2.0. A list of bug fixes and enhancements can be found at: https://git.fedorahosted.org/cgit/virt-viewer.git/plain/NEWS.
BZ#1158007
The mingw-openssl package has been rebased to upstream version 1.0.2a-1 to fix potential security vulnerabilities in CVE-2014-3566, CVE-2014-3567, CVE-2014-3513, and CVE-2014-3568.
BZ#1161081
Previously, clipboard images were truncated when copying from the SPICE client to guest, as clipboard data size was incorrectly calculated as a text string. Data size is now calculated according to its type so that copying and pasting images between client and guest works as expected.
BZ#1135105
Previously, the SPICE client did not send a data message when transferring zero-sized files by drag and drop. Because the guest agent expects to receive a message, it would keep a file open, causing a leak. This has been fixed by adding a transfer message for zero-sized files to prevent guests from leaking file descriptors in the guest agent during the copy.
BZ#975835
Using the remote-viewer tool to connect to an ovirt:// URI now displays a menu that allows the user to change the CD image inserted in the virtual machine (VM). This makes it possible to change the inserted CD while the VM is running without the need to use Red Hat Enterprise Virtualization or the oVirt portal.
BZ#1273977
Improved memory handling so that applications using the libgovirt library no longer crash when multiple ISO domains with the same name are found in REST requests. Applications using libgovirt no longer crash due to memory corruption.
BZ#857087
With this release, the menu File->USB device selection is disabled on Windows client machines if usbclerk is not running and usbdk is not installed. For Spice usbredir to work, it is required that either usbclerk is running or usbdk is installed (or both). When it is known that usbredir will fail, it is better and clearer to the user to disable it.
BZ#1247927
Previously, when the first display on a Windows guest was disabled, it could not be enabled in a new session, because virt-viewer did not check events on the first display channel. With this fix, virt-viewer checks for events in all display channels. It is now possible to disable a Windows guest's first display in one session, and enable it in a different session through the View menu in virt-viewer.
BZ#1200103
The virt-viewer tool can now report the SPICE client version being used to connect to a console. This allows a minimum SPICE client version to be set using the engine-config tool, and older SPICE clients to be blocked from connecting to virtual machine graphical consoles.
BZ#1055600
Previously, shortcuts were missing from the "Send key" menu when virt-viewer was started using the ActiveX plug-in. This occurred because enabling hotkeys required a rebuild of the menu containing the new hotkeys, which was done before parsing the string containing the new hotkeys. This has been fixed and the new shortcuts now properly show in the menu when connecting using the plug-in.
BZ#1205804
When viewing a remote SPICE session in windowed mode and resizing the viewer window be wider than the virtual screen, the viewer window was automatically resized to fit the screen width, and the resolution of the remote screen was scaled down. This unintentional behavior has been corrected, and in the described scenario, the both the viewer window and the resolution of its contents stay unchanged.
BZ#1233422
It is now possible to configure the position in which the guest displays in multi-monitor setups. To do so, edit the ~/.config/virt-viewer/settings file. For more information about this feature, refer to the CONFIGURATION section of the remote-viewer(1) manual page.
BZ#1242600
Previously, connecting to a virtual machine with remote-viewer when the resize-guest option was disabled changed the guest's display resolution. The code has been edited so that when resize-guest is disabled, virt-viewer no longer requests a display update. This also ensures that incorrect monitor configuration will not be sent, and the guest's display resolution will not change upon connection.
BZ#1244869
Prior to this update, Microsoft Windows virtual machines with multi-monitor setup in some cases waited for an image that had already been deleted, which caused the client to become unresponsive. With this update, reference counting has been added to channel images in the client and thread safety has been improved for image caching in the server. As a result, Windows virtual machines no longer hang due to the mentioned reasons.

spice-activex-win

BZ#1171717
Previously, the SPICE ActiveX plug-in sometimes crashed if a dynamic menu string was set larger than 4096 bytes. This happened because the menu string property in the SPICE ActiveX plug-in was stored in a 4096-byte array, and when a new menu string was set, its size was not checked. This was fixed by making the menu string property dynamically allocated according to the size of the new string. Additionally, to limit the memory allocated, the SPICE ActiveX plug-in also checks and rejects all strings that are too large. Strings are now sent to the client as UTF-8, and log messages size is limited. As a result, the plug-in no longer crashes when given a large menu string.

spice-usbdk-win

BZ#1144043
Redirecting or releasing a USB device can take 3-5 seconds in some cases, and since this was performed synchronously in spice-gtk, it caused virt-viewer to freeze for several seconds. In this release, these operations have been made asynchronous on the spice-gtk level, and users will no longer experience virt-viewer freezing when redirecting or releasing a USB device.
BZ#1202371
UsbDk has been added to Red Hat Enterprise Virtualization as a preferred alternative to usbclerk. UsbDk is a filter driver that is able to allow and disallow access to USB devices from spice-client on Windows machines. This allows virtual machines access to the client USB devices through SPICE client (remote-viewer) running on Windows machines.