Skip to content

Commits

Permalink
cve-2016-9602-…
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Commits on Feb 28, 2017

  1. 9pfs: local: drop unused code

    Now that the all callbacks have been converted to use "at" syscalls, we
    can drop this code.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    c23d5f1 View commit details
    Browse the repository at this point in the history
  2. 9pfs: local: open2: don't follow symlinks

    The local_open2() callback is vulnerable to symlink attacks because it
    calls:
    
    (1) open() which follows symbolic links for all path elements but the
        rightmost one
    (2) local_set_xattr()->setxattr() which follows symbolic links for all
        path elements
    (3) local_set_mapped_file_attr() which calls in turn local_fopen() and
        mkdir(), both functions following symbolic links for all path
        elements but the rightmost one
    (4) local_post_create_passthrough() which calls in turn lchown() and
        chmod(), both functions also following symbolic links
    
    This patch converts local_open2() to rely on opendir_nofollow() and
    mkdirat() to fix (1), as well as local_set_xattrat(),
    local_set_mapped_file_attrat() and local_set_cred_passthrough() to
    fix (2), (3) and (4) respectively. Since local_open2() already opens
    a descriptor to the target file, local_set_cred_passthrough() is
    modified to reuse it instead of opening a new one.
    
    The mapped and mapped-file security modes are supposed to be identical,
    except for the place where credentials and file modes are stored. While
    here, we also make that explicit by sharing the call to openat().
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    a565fea View commit details
    Browse the repository at this point in the history
  3. 9pfs: local: mkdir: don't follow symlinks

    The local_mkdir() callback is vulnerable to symlink attacks because it
    calls:
    
    (1) mkdir() which follows symbolic links for all path elements but the
        rightmost one
    (2) local_set_xattr()->setxattr() which follows symbolic links for all
        path elements
    (3) local_set_mapped_file_attr() which calls in turn local_fopen() and
        mkdir(), both functions following symbolic links for all path
        elements but the rightmost one
    (4) local_post_create_passthrough() which calls in turn lchown() and
        chmod(), both functions also following symbolic links
    
    This patch converts local_mkdir() to rely on opendir_nofollow() and
    mkdirat() to fix (1), as well as local_set_xattrat(),
    local_set_mapped_file_attrat() and local_set_cred_passthrough() to
    fix (2), (3) and (4) respectively.
    
    The mapped and mapped-file security modes are supposed to be identical,
    except for the place where credentials and file modes are stored. While
    here, we also make that explicit by sharing the call to mkdirat().
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    3f3a169 View commit details
    Browse the repository at this point in the history
  4. 9pfs: local: mknod: don't follow symlinks

    The local_mknod() callback is vulnerable to symlink attacks because it
    calls:
    
    (1) mknod() which follows symbolic links for all path elements but the
        rightmost one
    (2) local_set_xattr()->setxattr() which follows symbolic links for all
        path elements
    (3) local_set_mapped_file_attr() which calls in turn local_fopen() and
        mkdir(), both functions following symbolic links for all path
        elements but the rightmost one
    (4) local_post_create_passthrough() which calls in turn lchown() and
        chmod(), both functions also following symbolic links
    
    This patch converts local_mknod() to rely on opendir_nofollow() and
    mknodat() to fix (1), as well as local_set_xattrat() and
    local_set_mapped_file_attrat() to fix (2) and (3) respectively.
    
    A new local_set_cred_passthrough() helper based on fchownat() and
    fchmodat_nofollow() is introduced as a replacement to
    local_post_create_passthrough() to fix (4).
    
    The mapped and mapped-file security modes are supposed to be identical,
    except for the place where credentials and file modes are stored. While
    here, we also make that explicit by sharing the call to mknodat().
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    d815e72 View commit details
    Browse the repository at this point in the history
  5. 9pfs: local: symlink: don't follow symlinks

    The local_symlink() callback is vulnerable to symlink attacks because it
    calls:
    
    (1) symlink() which follows symbolic links for all path elements but the
        rightmost one
    (2) open(O_NOFOLLOW) which follows symbolic links for all path elements but
        the rightmost one
    (3) local_set_xattr()->setxattr() which follows symbolic links for all
        path elements
    (4) local_set_mapped_file_attr() which calls in turn local_fopen() and
        mkdir(), both functions following symbolic links for all path
        elements but the rightmost one
    
    This patch converts local_symlink() to rely on opendir_nofollow() and
    symlinkat() to fix (1), openat(O_NOFOLLOW) to fix (2), as well as
    local_set_xattrat() and local_set_mapped_file_attrat() to fix (3) and
    (4) respectively.
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    3877161 View commit details
    Browse the repository at this point in the history
  6. 9pfs: local: chown: don't follow symlinks

    The local_chown() callback is vulnerable to symlink attacks because it
    calls:
    
    (1) lchown() which follows symbolic links for all path elements but the
        rightmost one
    (2) local_set_xattr()->setxattr() which follows symbolic links for all
        path elements
    (3) local_set_mapped_file_attr() which calls in turn local_fopen() and
        mkdir(), both functions following symbolic links for all path
        elements but the rightmost one
    
    This patch converts local_chown() to rely on open_nofollow() and
    fchownat() to fix (1), as well as local_set_xattrat() and
    local_set_mapped_file_attrat() to fix (2) and (3) respectively.
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    d369f20 View commit details
    Browse the repository at this point in the history
  7. 9pfs: local: chmod: don't follow symlinks

    The local_chmod() callback is vulnerable to symlink attacks because it
    calls:
    
    (1) chmod() which follows symbolic links for all path elements
    (2) local_set_xattr()->setxattr() which follows symbolic links for all
        path elements
    (3) local_set_mapped_file_attr() which calls in turn local_fopen() and
        mkdir(), both functions following symbolic links for all path
        elements but the rightmost one
    
    We would need fchmodat() to implement AT_SYMLINK_NOFOLLOW to fix (1). This
    isn't the case on linux unfortunately: the kernel doesn't even have a flags
    argument to the syscall :-\ It is impossible to fix it in userspace in
    a race-free manner. This patch hence converts local_chmod() to rely on
    open_nofollow() and fchmod(). This fixes the vulnerability but introduces
    a limitation: the target file must readable and/or writable for the call
    to openat() to succeed.
    
    It introduces a local_set_xattrat() replacement to local_set_xattr()
    based on fsetxattrat() to fix (2), and a local_set_mapped_file_attrat()
    replacement to local_set_mapped_file_attr() based on local_fopenat()
    and mkdirat() to fix (3). No effort is made to factor out code because
    both local_set_xattr() and local_set_mapped_file_attr() will be dropped
    when all users have been converted to use the "at" versions.
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    e3187a4 View commit details
    Browse the repository at this point in the history
  8. 9pfs: local: link: don't follow symlinks

    The local_link() callback is vulnerable to symlink attacks because it calls:
    
    (1) link() which follows symbolic links for all path elements but the
        rightmost one
    (2) local_create_mapped_attr_dir()->mkdir() which follows symbolic links
        for all path elements but the rightmost one
    
    This patch converts local_link() to rely on opendir_nofollow() and linkat()
    to fix (1), mkdirat() to fix (2).
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    ad0b46e View commit details
    Browse the repository at this point in the history
  9. 9pfs: local: improve error handling in link op

    When using the mapped-file security model, we also have to create a link
    for the metadata file if it exists. In case of failure, we should rollback.
    
    That's what this patch does.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    6dd4b1f View commit details
    Browse the repository at this point in the history
  10. 9pfs: local: rename: use renameat

    The local_rename() callback is vulnerable to symlink attacks because it
    uses rename() which follows symbolic links in all path elements but the
    rightmost one.
    
    This patch simply transforms local_rename() into a wrapper around
    local_renameat() which is symlink-attack safe.
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    d2767ed View commit details
    Browse the repository at this point in the history
  11. 9pfs: local: renameat: don't follow symlinks

    The local_renameat() callback is currently a wrapper around local_rename()
    which is vulnerable to symlink attacks.
    
    This patch rewrites local_renameat() to have its own implementation, based
    on local_opendir_nofollow() and renameat().
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    99f2cf4 View commit details
    Browse the repository at this point in the history
  12. 9pfs: local: lstat: don't follow symlinks

    The local_lstat() callback is vulnerable to symlink attacks because it
    calls:
    
    (1) lstat() which follows symbolic links in all path elements but the
        rightmost one
    (2) getxattr() which follows symbolic links in all path elements
    (3) local_mapped_file_attr()->local_fopen()->openat(O_NOFOLLOW) which
        follows symbolic links in all path elements but the rightmost
        one
    
    This patch converts local_lstat() to rely on opendir_nofollow() and
    fstatat(AT_SYMLINK_NOFOLLOW) to fix (1), fgetxattrat_nofollow() to
    fix (2).
    
    A new local_fopenat() helper is introduced as a replacement to
    local_fopen() to fix (3). No effort is made to factor out code
    because local_fopen() will be dropped when all users have been
    converted to call local_fopenat().
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    f9aef99 View commit details
    Browse the repository at this point in the history
  13. 9pfs: local: readlink: don't follow symlinks

    The local_readlink() callback is vulnerable to symlink attacks because it
    calls:
    
    (1) open(O_NOFOLLOW) which follows symbolic links for all path elements but
        the rightmost one
    (2) readlink() which follows symbolic links for all path elements but the
        rightmost one
    
    This patch converts local_readlink() to rely on open_nofollow() to fix (1)
    and opendir_nofollow(), readlinkat() to fix (2).
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    bec1e95 View commit details
    Browse the repository at this point in the history
  14. 9pfs: local: truncate: don't follow symlinks

    The local_truncate() callback is vulnerable to symlink attacks because
    it calls truncate() which follows symbolic links in all path elements.
    
    This patch converts local_truncate() to rely on open_nofollow() and
    ftruncate() instead.
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    ac125d9 View commit details
    Browse the repository at this point in the history
  15. 9pfs: local: statfs: don't follow symlinks

    The local_statfs() callback is vulnerable to symlink attacks because it
    calls statfs() which follows symbolic links in all path elements.
    
    This patch converts local_statfs() to rely on open_nofollow() and fstatfs()
    instead.
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    31e51d1 View commit details
    Browse the repository at this point in the history
  16. 9pfs: local: utimensat: don't follow symlinks

    The local_utimensat() callback is vulnerable to symlink attacks because it
    calls qemu_utimens()->utimensat(AT_SYMLINK_NOFOLLOW) which follows symbolic
    links in all path elements but the rightmost one or qemu_utimens()->utimes()
    which follows symbolic links for all path elements.
    
    This patch converts local_utimensat() to rely on opendir_nofollow() and
    utimensat(AT_SYMLINK_NOFOLLOW) directly instead of using qemu_utimens().
    It is hence assumed that the OS supports utimensat(), i.e. has glibc 2.6
    or higher and linux 2.6.22 or higher, which seems reasonable nowadays.
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    a33eda0 View commit details
    Browse the repository at this point in the history
  17. 9pfs: local: remove: don't follow symlinks

    The local_remove() callback is vulnerable to symlink attacks because it
    calls:
    
    (1) lstat() which follows symbolic links in all path elements but the
        rightmost one
    (2) remove() which follows symbolic links in all path elements but the
        rightmost one
    
    This patch converts local_remove() to rely on opendir_nofollow(),
    fstatat(AT_SYMLINK_NOFOLLOW) to fix (1) and unlinkat() to fix (2).
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    a0e640a View commit details
    Browse the repository at this point in the history
  18. 9pfs: local: unlinkat: don't follow symlinks

    The local_unlinkat() callback is vulnerable to symlink attacks because it
    calls remove() which follows symbolic links in all path elements but the
    rightmost one.
    
    This patch converts local_unlinkat() to rely on opendir_nofollow() and
    unlinkat() instead.
    
    Most of the code is moved to a separate local_unlinkat_common() helper
    which will be reused in a subsequent patch to fix the same issue in
    local_remove().
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    df4938a View commit details
    Browse the repository at this point in the history
  19. 9pfs: local: lremovexattr: don't follow symlinks

    The local_lremovexattr() callback is vulnerable to symlink attacks because
    it calls lremovexattr() which follows symbolic links in all path elements
    but the rightmost one.
    
    This patch introduces a helper to emulate the non-existing fremovexattrat()
    function: it is implemented with /proc/self/fd which provides a trusted
    path that can be safely passed to lremovexattr().
    
    local_lremovexattr() is converted to use this helper and opendir_nofollow().
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    72f0d0b View commit details
    Browse the repository at this point in the history
  20. 9pfs: local: lsetxattr: don't follow symlinks

    The local_lsetxattr() callback is vulnerable to symlink attacks because
    it calls lsetxattr() which follows symbolic links in all path elements but
    the rightmost one.
    
    This patch introduces a helper to emulate the non-existing fsetxattrat()
    function: it is implemented with /proc/self/fd which provides a trusted
    path that can be safely passed to lsetxattr().
    
    local_lsetxattr() is converted to use this helper and opendir_nofollow().
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    3e36aba View commit details
    Browse the repository at this point in the history
  21. 9pfs: local: llistxattr: don't follow symlinks

    The local_llistxattr() callback is vulnerable to symlink attacks because
    it calls llistxattr() which follows symbolic links in all path elements but
    the rightmost one.
    
    This patch introduces a helper to emulate the non-existing flistxattrat()
    function: it is implemented with /proc/self/fd which provides a trusted
    path that can be safely passed to llistxattr().
    
    local_llistxattr() is converted to use this helper and opendir_nofollow().
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    5507904 View commit details
    Browse the repository at this point in the history
  22. 9pfs: local: lgetxattr: don't follow symlinks

    The local_lgetxattr() callback is vulnerable to symlink attacks because
    it calls lgetxattr() which follows symbolic links in all path elements but
    the rightmost one.
    
    This patch introduces a helper to emulate the non-existing fgetxattrat()
    function: it is implemented with /proc/self/fd which provides a trusted
    path that can be safely passed to lgetxattr().
    
    local_lgetxattr() is converted to use this helper and opendir_nofollow().
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    56ad3e5 View commit details
    Browse the repository at this point in the history
  23. 9pfs: local: open/opendir: don't follow symlinks

    The local_open() and local_opendir() callbacks are vulnerable to symlink
    attacks because they call:
    
    (1) open(O_NOFOLLOW) which follows symbolic links in all path elements but
        the rightmost one
    (2) opendir() which follows symbolic links in all path elements
    
    This patch converts both callbacks to use new helpers based on
    openat_nofollow() to only open files and directories if they are
    below the virtfs shared folder
    
    This partly fixes CVE-2016-9602.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    996a0d7 View commit details
    Browse the repository at this point in the history
  24. 9pfs: local: keep a file descriptor on the shared folder

    This patch opens the shared folder and caches the file descriptor, so that
    it can be used to do symlink-safe path walk.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    0e35a37 View commit details
    Browse the repository at this point in the history
  25. 9pfs: introduce relative_openat_nofollow() helper

    When using the passthrough security mode, symbolic links created by the
    guest are actual symbolic links on the host file system.
    
    Since the resolution of symbolic links during path walk is supposed to
    occur on the client side. The server should hence never receive any path
    pointing to an actual symbolic link. This isn't guaranteed by the protocol
    though, and malicious code in the guest can trick the server to issue
    various syscalls on paths whose one or more elements are symbolic links.
    In the case of the "local" backend using the "passthrough" or "none"
    security modes, the guest can directly create symbolic links to arbitrary
    locations on the host (as per spec). The "mapped-xattr" and "mapped-file"
    security modes are also affected to a lesser extent as they require some
    help from an external entity to create actual symbolic links on the host,
    i.e. another guest using "passthrough" mode for example.
    
    The current code hence relies on O_NOFOLLOW and "l*()" variants of system
    calls. Unfortunately, this only applies to the rightmost path component.
    A guest could maliciously replace any component in a trusted path with a
    symbolic link. This could allow any guest to escape a virtfs shared folder.
    
    This patch introduces a variant of the openat() syscall that successively
    opens each path element with O_NOFOLLOW. When passing a file descriptor
    pointing to a trusted directory, one is guaranteed to be returned a
    file descriptor pointing to a path which is beneath the trusted directory.
    This will be used by subsequent patches to implement symlink-safe path walk
    for any access to the backend.
    
    Symbolic links aren't the only threats actually: a malicious guest could
    change a path element to point to other types of file with undesirable
    effects:
    - a named pipe or any other thing that would cause openat() to block
    - a terminal device which would become QEMU's controlling terminal
    
    These issues can be addressed with O_NONBLOCK and O_NOCTTY.
    
    Two helpers are introduced: one to open intermediate path elements and one
    to open the rightmost path element.
    
    Suggested-by: Jann Horn <jannh@google.com>
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    (renamed openat_nofollow() to relative_openat_nofollow(),
     assert path is relative and doesn't contain '//',
     fixed side-effect in assert, Greg Kurz)
    Signed-off-by: Greg Kurz <groug@kaod.org>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    6482a96 View commit details
    Browse the repository at this point in the history
  26. 9pfs: remove side-effects in local_open() and local_opendir()

    If these functions fail, they should not change *fs. Let's use local
    variables to fix this.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    21328e1 View commit details
    Browse the repository at this point in the history
  27. 9pfs: remove side-effects in local_init()

    If this function fails, it should not modify *ctx.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    00c90bd View commit details
    Browse the repository at this point in the history
  28. 9pfs: local: move xattr security ops to 9p-xattr.c

    These functions are always called indirectly. It really doesn't make sense
    for them to sit in a header file.
    
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    gkurz committed Feb 28, 2017
    Copy the full SHA
    56fc494 View commit details
    Browse the repository at this point in the history

Commits on Feb 27, 2017

  1. Merge remote-tracking branch 'remotes/kraxel/tags/pull-ui-20170227-1'…

    … into staging
    
    gtk: fix kbd on xwayland
    vnc: fix double free issues
    opengl improvements
    
    # gpg: Signature made Mon 27 Feb 2017 16:11:30 GMT
    # gpg:                using RSA key 0x4CB6D8EED3E87138
    # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
    # gpg:                 aka "Gerd Hoffmann <gerd@kraxel.org>"
    # gpg:                 aka "Gerd Hoffmann (private) <kraxel@gmail.com>"
    # Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138
    
    * remotes/kraxel/tags/pull-ui-20170227-1:
      vnc: fix double free issues
      spice: add display & head options
      ui: Use XkbGetMap and XkbGetNames instead of XkbGetKeyboard
      gtk-egl: add scanout_disable support
      sdl2: add scanout_disable support
      spice: add scanout_disable support
      virtio-gpu: use dpy_gl_scanout_disable
      console: add dpy_gl_scanout_disable
      console: rename dpy_gl_scanout to dpy_gl_scanout_texture
    
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    pm215 committed Feb 27, 2017
    Copy the full SHA
    9b9fbe8 View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'remotes/berrange/tags/pull-qcrypto-2017…

    …-02-27-1' into staging
    
    Merge qcrypto 2017/02/27 v1
    
    # gpg: Signature made Mon 27 Feb 2017 13:37:34 GMT
    # gpg:                using RSA key 0xBE86EBB415104FDF
    # gpg: Good signature from "Daniel P. Berrange <dan@berrange.com>"
    # gpg:                 aka "Daniel P. Berrange <berrange@redhat.com>"
    # Primary key fingerprint: DAF3 A6FD B26B 6291 2D0E  8E3F BE86 EBB4 1510 4FDF
    
    * remotes/berrange/tags/pull-qcrypto-2017-02-27-1:
      crypto: assert cipher algorithm is always valid
      crypto: fix leak in ivgen essiv init
    
    Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
    pm215 committed Feb 27, 2017
    Copy the full SHA
    8f2d7c3 View commit details
    Browse the repository at this point in the history
  3. vnc: fix double free issues

    Reported by Coverity: CID 1371242, 1371243, 1371244.
    
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Peter Maydell <peter.maydell@linaro.org>
    Cc: Daniel P. Berrange <berrange@redhat.com>
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-id: 1487682332-29154-1-git-send-email-kraxel@redhat.com
    kraxel committed Feb 27, 2017
    Copy the full SHA
    2dc120b View commit details
    Browse the repository at this point in the history
  4. spice: add display & head options

    This allows to specify display and head to use, simliar to vnc.
    
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Message-id: 1487663858-11731-1-git-send-email-kraxel@redhat.com
    kraxel committed Feb 27, 2017
    Copy the full SHA
    8bf69b4 View commit details
    Browse the repository at this point in the history
  5. ui: Use XkbGetMap and XkbGetNames instead of XkbGetKeyboard

    XkbGetKeyboard does not work in XWayland and even on non-Wayland
    X11 servers its use is discouraged:
    
      https://bugs.freedesktop.org/show_bug.cgi?id=89240
    
    This resolves a problem whereby QEMU prints
    
      "could not lookup keycode name"
    
    on startup when running under XWayland. Keymap handling is
    however still broken after this commit, since Xwayland is
    reporting a keymap we can't handle
    
      "unknown keycodes `(unnamed)', please report to qemu-devel@nongnu.org"
    
    NB, native Wayland support (which is the default under GTK3) is
    not affected - only XWayland (which can be requested with GDK_BACKEND
    on GTK3, and is the only option for GTK2).
    
    Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
    Message-id: 20170227132343.30824-1-berrange@redhat.com
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    berrange authored and kraxel committed Feb 27, 2017
    Copy the full SHA
    857e479 View commit details
    Browse the repository at this point in the history
  6. gtk-egl: add scanout_disable support

    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-id: 1487669841-13668-7-git-send-email-kraxel@redhat.com
    kraxel committed Feb 27, 2017
    Copy the full SHA
    543a7a1 View commit details
    Browse the repository at this point in the history
  7. sdl2: add scanout_disable support

    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-id: 1487669841-13668-6-git-send-email-kraxel@redhat.com
    kraxel committed Feb 27, 2017
    Copy the full SHA
    db6cdfb View commit details
    Browse the repository at this point in the history
Older