diff options
author | Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> | 2013-04-22 12:42:10 +0000 |
---|---|---|
committer | Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> | 2013-04-22 12:42:10 +0000 |
commit | 5110ea95364cf71aaacc05d043498f6910b78103 (patch) | |
tree | 945eb4056505b3a12585dbf739bc04d5321b76ea /x11-base/xorg-server/files | |
parent | Stable for alpha, wrt bug #466222 (diff) | |
download | gentoo-2-5110ea95364cf71aaacc05d043498f6910b78103.tar.gz gentoo-2-5110ea95364cf71aaacc05d043498f6910b78103.tar.bz2 gentoo-2-5110ea95364cf71aaacc05d043498f6910b78103.zip |
Drop vulnerable versions.
(Portage version: 2.1.11.55/cvs/Linux x86_64, unsigned Manifest commit)
Diffstat (limited to 'x11-base/xorg-server/files')
-rw-r--r-- | x11-base/xorg-server/files/xdm.confd-3 | 16 | ||||
-rw-r--r-- | x11-base/xorg-server/files/xdm.initd-3 | 218 | ||||
-rw-r--r-- | x11-base/xorg-server/files/xdm.initd-5 | 219 | ||||
-rw-r--r-- | x11-base/xorg-server/files/xdm.initd-8 | 216 | ||||
-rw-r--r-- | x11-base/xorg-server/files/xorg-server-1.13.0-exa-track-source-pixmaps.patch | 81 |
5 files changed, 0 insertions, 750 deletions
diff --git a/x11-base/xorg-server/files/xdm.confd-3 b/x11-base/xorg-server/files/xdm.confd-3 deleted file mode 100644 index 9c560bb1a978..000000000000 --- a/x11-base/xorg-server/files/xdm.confd-3 +++ /dev/null @@ -1,16 +0,0 @@ -# We always try and start X on a static VT. The various DMs normally default -# to using VT7. If you wish to use the xdm init script, then you should ensure -# that the VT checked is the same VT your DM wants to use. We do this check to -# ensure that you haven't accidentally configured something to run on the VT -# in your /etc/inittab file so that you don't get a dead keyboard. -CHECKVT=7 - -# What display manager do you use ? [ xdm | gdm | kdm | kdm-4.3 | gpe | entrance ] -# NOTE: If this is set in /etc/rc.conf, that setting will override this one. -# -# KDE-specific note: -# - If you are using kdeprefix go with "kdm-4.Y", e.g. "kdm-4.3". -# You can find possible versions by looking at the directories in /usr/kde/. -# - Else, if you are using KDE 3 enter "kdm-3.5" -# - Else, if you are using KDE 4 enter "kdm" without a version -DISPLAYMANAGER="xdm"
\ No newline at end of file diff --git a/x11-base/xorg-server/files/xdm.initd-3 b/x11-base/xorg-server/files/xdm.initd-3 deleted file mode 100644 index 4e4c8b207901..000000000000 --- a/x11-base/xorg-server/files/xdm.initd-3 +++ /dev/null @@ -1,218 +0,0 @@ -#!/sbin/runscript -# Copyright 1999-2012 Gentoo Foundation -# Distributed under the terms of the GNU General Public License, v2 -# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/files/xdm.initd-3,v 1.5 2012/06/12 11:27:07 chithanh Exp $ - -# This is here to serve as a note to myself, and future developers. -# -# Any Display manager (gdm,kdm,xdm) has the following problem: if -# it is started before any getty, and no vt is specified, it will -# usually run on vt2. When the getty on vt2 then starts, and the -# DM is already started, the getty will take control of the keyboard, -# leaving us with a "dead" keyboard. -# -# Resolution: add the following line to /etc/inittab -# -# x:a:once:/etc/X11/startDM.sh -# -# and have /etc/X11/startDM.sh start the DM in daemon mode if -# a lock is present (with the info of what DM should be started), -# else just fall through. -# -# How this basically works, is the "a" runlevel is a additional -# runlevel that you can use to fork processes with init, but the -# runlevel never gets changed to this runlevel. Along with the "a" -# runlevel, the "once" key word means that startDM.sh will only be -# run when we specify it to run, thus eliminating respawning -# startDM.sh when "xdm" is not added to the default runlevel, as was -# done previously. -# -# This script then just calls "telinit a", and init will run -# /etc/X11/startDM.sh after the current runlevel completes (this -# script should only be added to the actual runlevel the user is -# using). -# -# Martin Schlemmer -# aka Azarah -# 04 March 2002 - -depend() { - need localmount xdm-setup - - # this should start as early as possible - # we can't do 'before *' as that breaks it - # (#139824) Start after ypbind and autofs for network authentication - # (#145219 #180163) Could use lirc mouse as input device - # (#70689 comment #92) Start after consolefont to avoid display corruption - # (#291269) Start after quota, since some dm need readable home - after bootmisc consolefont modules netmount - after readahead-list ypbind autofs openvpn gpm lircmd - after quota - before alsasound - - # Start before X - use consolekit xfs -} - -setup_dm() { - local MY_XDM - - MY_XDM=$(echo "${DISPLAYMANAGER}" | tr '[:upper:]' '[:lower:]') - - # Load our root path from profile.env - # Needed for kdm - PATH=${PATH}:$(. /etc/profile.env; echo "${ROOTPATH}") - - NAME= - case "${MY_XDM}" in - kdm|kde) - EXE="$(which kdm)" - PIDFILE=/var/run/kdm.pid - ;; - kdm-*) - EXE="/usr/kde/${MY_XDM#kdm-}/bin/kdm" - PIDFILE=/var/run/kdm.pid - ;; - entrance*) - EXE=/usr/sbin/entranced - PIDFILE=/var/lib/entranced.pid - ;; - gdm|gnome) - EXE=/usr/bin/gdm - [ "${RC_UNAME}" != "Linux" ] && NAME=gdm-binary - PIDFILE=/var/run/gdm.pid - ;; - wdm) - EXE=/usr/bin/wdm - PIDFILE= - ;; - gpe) - EXE=/usr/bin/gpe-dm - PIDFILE=/var/run/gpe-dm.pid - ;; - lxdm) - EXE=/usr/sbin/lxdm-binary - PIDFILE=/var/run/lxdm.pid - START_STOP_ARGS="--background" - ;; - lightdm) - EXE=/usr/sbin/lightdm - PIDFILE=/var/run/lightdm.pid - START_STOP_ARGS="--background" - ;; - *) - # first find out if there is such executable - EXE="$(which ${MY_XDM} 2>/dev/null)" - PIDFILE="/var/run/${MY_XDM}.pid" - - # warn user that he is doing sick things if the exe was not found - if [ -z "${EXE}" ]; then - echo "ERROR: Your XDM value is invalid." - echo " No ${MY_XDM} executable could be found on your system." - fi - ;; - esac - - if ! [ -x "${EXE}" ]; then - EXE=/usr/bin/xdm - PIDFILE=/var/run/xdm.pid - if ! [ -x "/usr/bin/xdm" ]; then - echo "ERROR: Please set your DISPLAYMANAGER variable in /etc/conf.d/xdm," - echo " or install x11-apps/xdm package" - eend 255 - fi - fi -} - -# Check to see if something is defined on our VT -vtstatic() { - if [ -e /etc/inittab ] ; then - grep -Eq "^[^#]+.*\<tty$1\>" /etc/inittab - elif [ -e /etc/ttys ] ; then - grep -q "^ttyv$(($1 - 1))" /etc/ttys - else - return 1 - fi -} - -start() { - local EXE NAME PIDFILE - setup_dm - - if [ -f /etc/.noxdm ]; then - einfo "Skipping ${EXE##*/}, /etc/.noxdm found or \"nox\" bootparam passed." - rm /etc/.noxdm - return 0 - fi - - ebegin "Setting up ${EXE##*/}" - - # save the prefered DM - save_options "service" "${EXE}" - save_options "name" "${NAME}" - save_options "pidfile" "${PIDFILE}" - save_options "start_stop_args" "${START_STOP_ARGS}" - - if [ -n "${CHECKVT-y}" ] ; then - if vtstatic "${CHECKVT:-7}" ; then - if [ -x /sbin/telinit ] && [ "${SOFTLEVEL}" != "BOOT" ] && [ "${RC_SOFTLEVEL}" != "BOOT" ]; then - ewarn "Something is already defined on VT ${CHECKVT:-7}, will start X later" - telinit a >/dev/null 2>&1 - return 0 - else - eerror "Something is already defined on VT ${CHECKVT:-7}, not starting" - return 1 - fi - fi - fi - - /etc/X11/startDM.sh - eend 0 -} - -stop() { - local curvt retval - - retval=0 - if [ -t 0 ]; then - if type fgconsole >/dev/null 2>&1; then - curvt=$(fgconsole 2>/dev/null) - else - curvt=$(tty) - case "${curvt}" in - /dev/ttyv[0-9]*) curvt=${curvt#/dev/ttyv} ;; - *) curvt= ;; - esac - fi - fi - local myexe myname mypidfile myservice - myexe=$(get_options "service") - myname=$(get_options "name") - mypidfile=$(get_options "pidfile") - myservice=${myexe##*/} - - [ -z "${myexe}" ] && return 0 - - ebegin "Stopping ${myservice}" - - if start-stop-daemon --quiet --test --stop --exec "${myexe}"; then - start-stop-daemon --stop --exec "${myexe}" --retry TERM/5/TERM/5 \ - ${mypidfile:+--pidfile} ${mypidfile} \ - ${myname:+--name} ${myname} - retval=${?} - fi - - # switch back to original vt - if [ -n "${curvt}" ]; then - if type chvt >/dev/null 2>&1; then - chvt "${curvt}" - else - vidcontrol -s "$((curvt + 1))" - fi - fi - - eend ${retval} "Error stopping ${myservice}" - return ${retval} -} - -# vim: set ts=4 : diff --git a/x11-base/xorg-server/files/xdm.initd-5 b/x11-base/xorg-server/files/xdm.initd-5 deleted file mode 100644 index c152e40e192d..000000000000 --- a/x11-base/xorg-server/files/xdm.initd-5 +++ /dev/null @@ -1,219 +0,0 @@ -#!/sbin/runscript -# Copyright 1999-2011 Gentoo Foundation -# Distributed under the terms of the GNU General Public License, v2 -# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/files/xdm.initd-5,v 1.1 2011/11/24 13:09:40 chithanh Exp $ - -# This is here to serve as a note to myself, and future developers. -# -# Any Display manager (gdm,kdm,xdm) has the following problem: if -# it is started before any getty, and no vt is specified, it will -# usually run on vt2. When the getty on vt2 then starts, and the -# DM is already started, the getty will take control of the keyboard, -# leaving us with a "dead" keyboard. -# -# Resolution: add the following line to /etc/inittab -# -# x:a:once:/etc/X11/startDM.sh -# -# and have /etc/X11/startDM.sh start the DM in daemon mode if -# a lock is present (with the info of what DM should be started), -# else just fall through. -# -# How this basically works, is the "a" runlevel is a additional -# runlevel that you can use to fork processes with init, but the -# runlevel never gets changed to this runlevel. Along with the "a" -# runlevel, the "once" key word means that startDM.sh will only be -# run when we specify it to run, thus eliminating respawning -# startDM.sh when "xdm" is not added to the default runlevel, as was -# done previously. -# -# This script then just calls "telinit a", and init will run -# /etc/X11/startDM.sh after the current runlevel completes (this -# script should only be added to the actual runlevel the user is -# using). -# -# Martin Schlemmer -# aka Azarah -# 04 March 2002 - -depend() { - need localmount xdm-setup - - # this should start as early as possible - # we can't do 'before *' as that breaks it - # (#139824) Start after ypbind and autofs for network authentication - # (#145219 #180163) Could use lirc mouse as input device - # (#70689 comment #92) Start after consolefont to avoid display corruption - # (#291269) Start after quota, since some dm need readable home - # (#390609) gdm-3 will fail when dbus is not running - after bootmisc consolefont modules netmount - after readahead-list ypbind autofs openvpn gpm lircmd - after quota - before alsasound - - # Start before X - use consolekit dbus xfs -} - -setup_dm() { - local MY_XDM - - MY_XDM=$(echo "${DISPLAYMANAGER}" | tr '[:upper:]' '[:lower:]') - - # Load our root path from profile.env - # Needed for kdm - PATH=${PATH}:$(. /etc/profile.env; echo "${ROOTPATH}") - - NAME= - case "${MY_XDM}" in - kdm|kde) - EXE="$(which kdm)" - PIDFILE=/var/run/kdm.pid - ;; - kdm-*) - EXE="/usr/kde/${MY_XDM#kdm-}/bin/kdm" - PIDFILE=/var/run/kdm.pid - ;; - entrance*) - EXE=/usr/sbin/entranced - PIDFILE=/var/lib/entranced.pid - ;; - gdm|gnome) - EXE=/usr/bin/gdm - [ "${RC_UNAME}" != "Linux" ] && NAME=gdm-binary - PIDFILE=/var/run/gdm.pid - ;; - wdm) - EXE=/usr/bin/wdm - PIDFILE= - ;; - gpe) - EXE=/usr/bin/gpe-dm - PIDFILE=/var/run/gpe-dm.pid - ;; - lxdm) - EXE=/usr/sbin/lxdm-binary - PIDFILE=/var/run/lxdm.pid - START_STOP_ARGS="--background" - ;; - lightdm) - EXE=/usr/sbin/lightdm - PIDFILE=/var/run/lightdm.pid - START_STOP_ARGS="--background" - ;; - *) - # first find out if there is such executable - EXE="$(which ${MY_XDM} 2>/dev/null)" - PIDFILE="/var/run/${MY_XDM}.pid" - - # warn user that he is doing sick things if the exe was not found - if [ -z "${EXE}" ]; then - echo "ERROR: Your XDM value is invalid." - echo " No ${MY_XDM} executable could be found on your system." - fi - ;; - esac - - if ! [ -x "${EXE}" ]; then - EXE=/usr/bin/xdm - PIDFILE=/var/run/xdm.pid - if ! [ -x "/usr/bin/xdm" ]; then - echo "ERROR: Please set your DISPLAYMANAGER variable in /etc/conf.d/xdm," - echo " or install x11-apps/xdm package" - eend 255 - fi - fi -} - -# Check to see if something is defined on our VT -vtstatic() { - if [ -e /etc/inittab ] ; then - grep -Eq "^[^#]+.*\<tty$1\>" /etc/inittab - elif [ -e /etc/ttys ] ; then - grep -q "^ttyv$(($1 - 1))" /etc/ttys - else - return 1 - fi -} - -start() { - local EXE NAME PIDFILE - setup_dm - - if [ -f /etc/.noxdm ]; then - einfo "Skipping ${EXE##*/}, /etc/.noxdm found or \"nox\" bootparam passed." - rm /etc/.noxdm - return 0 - fi - - ebegin "Setting up ${EXE##*/}" - - # save the prefered DM - save_options "service" "${EXE}" - save_options "name" "${NAME}" - save_options "pidfile" "${PIDFILE}" - save_options "start_stop_args" "${START_STOP_ARGS}" - - if [ -n "${CHECKVT-y}" ] ; then - if vtstatic "${CHECKVT:-7}" ; then - if [ -x /sbin/telinit ] && [ "${SOFTLEVEL}" != "BOOT" ] && [ "${RC_SOFTLEVEL}" != "BOOT" ]; then - ewarn "Something is already defined on VT ${CHECKVT:-7}, will start X later" - telinit a >/dev/null 2>&1 - return 0 - else - eerror "Something is already defined on VT ${CHECKVT:-7}, not starting" - return 1 - fi - fi - fi - - /etc/X11/startDM.sh - eend 0 -} - -stop() { - local curvt retval - - retval=0 - if [ -t 0 ]; then - if type fgconsole >/dev/null 2>&1; then - curvt=$(fgconsole 2>/dev/null) - else - curvt=$(tty) - case "${curvt}" in - /dev/ttyv[0-9]*) curvt=${curvt#/dev/ttyv} ;; - *) curvt= ;; - esac - fi - fi - local myexe myname mypidfile myservice - myexe=$(get_options "service") - myname=$(get_options "name") - mypidfile=$(get_options "pidfile") - myservice=${myexe##*/} - - [ -z "${myexe}" ] && return 0 - - ebegin "Stopping ${myservice}" - - if start-stop-daemon --quiet --test --stop --exec "${myexe}"; then - start-stop-daemon --stop --exec "${myexe}" --retry TERM/5/TERM/5 \ - ${mypidfile:+--pidfile} ${mypidfile} \ - ${myname:+--name} ${myname} - retval=${?} - fi - - # switch back to original vt - if [ -n "${curvt}" ]; then - if type chvt >/dev/null 2>&1; then - chvt "${curvt}" - else - vidcontrol -s "$((curvt + 1))" - fi - fi - - eend ${retval} "Error stopping ${myservice}" - return ${retval} -} - -# vim: set ts=4 : diff --git a/x11-base/xorg-server/files/xdm.initd-8 b/x11-base/xorg-server/files/xdm.initd-8 deleted file mode 100644 index 539cac107c3b..000000000000 --- a/x11-base/xorg-server/files/xdm.initd-8 +++ /dev/null @@ -1,216 +0,0 @@ -#!/sbin/runscript -# Copyright 1999-2012 Gentoo Foundation -# Distributed under the terms of the GNU General Public License, v2 -# $Header: /var/cvsroot/gentoo-x86/x11-base/xorg-server/files/xdm.initd-8,v 1.1 2012/05/01 22:08:46 chithanh Exp $ - -# This is here to serve as a note to myself, and future developers. -# -# Any Display manager (gdm,kdm,xdm) has the following problem: if -# it is started before any getty, and no vt is specified, it will -# usually run on vt2. When the getty on vt2 then starts, and the -# DM is already started, the getty will take control of the keyboard, -# leaving us with a "dead" keyboard. -# -# Resolution: add the following line to /etc/inittab -# -# x:a:once:/etc/X11/startDM.sh -# -# and have /etc/X11/startDM.sh start the DM in daemon mode if -# a lock is present (with the info of what DM should be started), -# else just fall through. -# -# How this basically works, is the "a" runlevel is a additional -# runlevel that you can use to fork processes with init, but the -# runlevel never gets changed to this runlevel. Along with the "a" -# runlevel, the "once" key word means that startDM.sh will only be -# run when we specify it to run, thus eliminating respawning -# startDM.sh when "xdm" is not added to the default runlevel, as was -# done previously. -# -# This script then just calls "telinit a", and init will run -# /etc/X11/startDM.sh after the current runlevel completes (this -# script should only be added to the actual runlevel the user is -# using). -# -# Martin Schlemmer -# aka Azarah -# 04 March 2002 - -depend() { - need localmount xdm-setup - - # this should start as early as possible - # we can't do 'before *' as that breaks it - # (#139824) Start after ypbind and autofs for network authentication - # (#145219 #180163) Could use lirc mouse as input device - # (#70689 comment #92) Start after consolefont to avoid display corruption - # (#291269) Start after quota, since some dm need readable home - # (#390609) gdm-3 will fail when dbus is not running - # (#366753) starting keymaps after X causes problems - after bootmisc consolefont modules netmount - after readahead-list ypbind autofs openvpn gpm lircmd - after quota keymaps - before alsasound - - # Start before X - use consolekit dbus xfs -} - -setup_dm() { - local MY_XDM - - MY_XDM=$(echo "${DISPLAYMANAGER}" | tr '[:upper:]' '[:lower:]') - - # Load our root path from profile.env - # Needed for kdm - PATH=${PATH}:$(. /etc/profile.env; echo "${ROOTPATH}") - - NAME= - case "${MY_XDM}" in - kdm|kde) - EXE=/usr/bin/kdm - PIDFILE=/var/run/kdm.pid - ;; - entrance*) - EXE=/usr/sbin/entranced - PIDFILE=/var/lib/entranced.pid - ;; - gdm|gnome) - EXE=/usr/bin/gdm - [ "${RC_UNAME}" != "Linux" ] && NAME=gdm-binary - PIDFILE=/var/run/gdm.pid - ;; - wdm) - EXE=/usr/bin/wdm - PIDFILE= - ;; - gpe) - EXE=/usr/bin/gpe-dm - PIDFILE=/var/run/gpe-dm.pid - ;; - lxdm) - EXE=/usr/sbin/lxdm-binary - PIDFILE=/var/run/lxdm.pid - START_STOP_ARGS="--background" - ;; - lightdm) - EXE=/usr/sbin/lightdm - PIDFILE=/var/run/lightdm.pid - START_STOP_ARGS="--background" - ;; - *) - # first find out if there is such executable - EXE="$(command -v ${MY_XDM} 2>/dev/null)" - PIDFILE="/var/run/${MY_XDM}.pid" - - # warn user that he is doing sick things if the exe was not found - if [ -z "${EXE}" ]; then - echo "ERROR: Your XDM value is invalid." - echo " No ${MY_XDM} executable could be found on your system." - fi - ;; - esac - - if ! [ -x "${EXE}" ]; then - EXE=/usr/bin/xdm - PIDFILE=/var/run/xdm.pid - if ! [ -x "/usr/bin/xdm" ]; then - echo "ERROR: Please set your DISPLAYMANAGER variable in /etc/conf.d/xdm," - echo " or install x11-apps/xdm package" - eend 255 - fi - fi -} - -# Check to see if something is defined on our VT -vtstatic() { - if [ -e /etc/inittab ] ; then - grep -Eq "^[^#]+.*\<tty$1\>" /etc/inittab - elif [ -e /etc/ttys ] ; then - grep -q "^ttyv$(($1 - 1))" /etc/ttys - else - return 1 - fi -} - -start() { - local EXE NAME PIDFILE - setup_dm - - if [ -f /etc/.noxdm ]; then - einfo "Skipping ${EXE##*/}, /etc/.noxdm found or \"nox\" bootparam passed." - rm /etc/.noxdm - return 0 - fi - - ebegin "Setting up ${EXE##*/}" - - # save the prefered DM - save_options "service" "${EXE}" - save_options "name" "${NAME}" - save_options "pidfile" "${PIDFILE}" - save_options "start_stop_args" "${START_STOP_ARGS}" - - if [ -n "${CHECKVT-y}" ] ; then - if vtstatic "${CHECKVT:-7}" ; then - if [ -x /sbin/telinit ] && [ "${SOFTLEVEL}" != "BOOT" ] && [ "${RC_SOFTLEVEL}" != "BOOT" ]; then - ewarn "Something is already defined on VT ${CHECKVT:-7}, will start X later" - telinit a >/dev/null 2>&1 - return 0 - else - eerror "Something is already defined on VT ${CHECKVT:-7}, not starting" - return 1 - fi - fi - fi - - /etc/X11/startDM.sh - eend 0 -} - -stop() { - local curvt retval - - retval=0 - if [ -t 0 ]; then - if type fgconsole >/dev/null 2>&1; then - curvt=$(fgconsole 2>/dev/null) - else - curvt=$(tty) - case "${curvt}" in - /dev/ttyv[0-9]*) curvt=${curvt#/dev/ttyv} ;; - *) curvt= ;; - esac - fi - fi - local myexe myname mypidfile myservice - myexe=$(get_options "service") - myname=$(get_options "name") - mypidfile=$(get_options "pidfile") - myservice=${myexe##*/} - - [ -z "${myexe}" ] && return 0 - - ebegin "Stopping ${myservice}" - - if start-stop-daemon --quiet --test --stop --exec "${myexe}"; then - start-stop-daemon --stop --exec "${myexe}" --retry TERM/5/TERM/5 \ - ${mypidfile:+--pidfile} ${mypidfile} \ - ${myname:+--name} ${myname} - retval=${?} - fi - - # switch back to original vt - if [ -n "${curvt}" ]; then - if type chvt >/dev/null 2>&1; then - chvt "${curvt}" - else - vidcontrol -s "$((curvt + 1))" - fi - fi - - eend ${retval} "Error stopping ${myservice}" - return ${retval} -} - -# vim: set ts=4 : diff --git a/x11-base/xorg-server/files/xorg-server-1.13.0-exa-track-source-pixmaps.patch b/x11-base/xorg-server/files/xorg-server-1.13.0-exa-track-source-pixmaps.patch deleted file mode 100644 index e31d41c52652..000000000000 --- a/x11-base/xorg-server/files/xorg-server-1.13.0-exa-track-source-pixmaps.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 395c9e17089a7e4ed46a747904b36b1fec94fab3 Mon Sep 17 00:00:00 2001 -From: Michel Dänzer <michel.daenzer@amd.com> -Date: Mon, 29 Oct 2012 11:57:54 +0000 -Subject: EXA: Track source/mask pixmaps more explicitly for Composite fallback regions. - -In particular, make sure pExaScr->src/maskPix are cleared when the -corresponding pictures aren't associated with drawables, i.e. solid or gradient -pictures. Without this, we would in some cases associate the source/mask region -with unrelated pixmaps from previous Composite fallbacks, resulting in random -corruption. - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47266 - -Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> -Reviewed-by: Alex Deucher <alexander.deucher@amd.com> -Signed-off-by: Keith Packard <keithp@keithp.com> -(cherry picked from commit 1ca096d5e07221025c4c4110528772b7d94f15ee) ---- -diff --git a/exa/exa_priv.h b/exa/exa_priv.h -index ea7e7fa..2e4759d 100644 ---- a/exa/exa_priv.h -+++ b/exa/exa_priv.h -@@ -209,6 +209,7 @@ typedef struct { - RegionRec srcReg; - RegionRec maskReg; - PixmapPtr srcPix; -+ PixmapPtr maskPix; - - DevPrivateKeyRec pixmapPrivateKeyRec; - DevPrivateKeyRec gcPrivateKeyRec; -diff --git a/exa/exa_unaccel.c b/exa/exa_unaccel.c -index 5716138..b0a0011 100644 ---- a/exa/exa_unaccel.c -+++ b/exa/exa_unaccel.c -@@ -442,6 +442,13 @@ ExaSrcValidate(DrawablePtr pDrawable, - RegionPtr dst; - int xoff, yoff; - -+ if (pExaScr->srcPix == pPix) -+ dst = &pExaScr->srcReg; -+ else if (pExaScr->maskPix == pPix) -+ dst = &pExaScr->maskReg; -+ else -+ return; -+ - exaGetDrawableDeltas(pDrawable, pPix, &xoff, &yoff); - - box.x1 = x + xoff; -@@ -449,8 +456,6 @@ ExaSrcValidate(DrawablePtr pDrawable, - box.x2 = box.x1 + width; - box.y2 = box.y1 + height; - -- dst = (pExaScr->srcPix == pPix) ? &pExaScr->srcReg : &pExaScr->maskReg; -- - RegionInit(®, &box, 1); - RegionUnion(dst, dst, ®); - RegionUninit(®); -@@ -495,16 +500,19 @@ ExaPrepareCompositeReg(ScreenPtr pScreen, - if (pSrc != pDst) - RegionTranslate(pSrc->pCompositeClip, - -pSrc->pDrawable->x, -pSrc->pDrawable->y); -- } -+ } else -+ pExaScr->srcPix = NULL; - - if (pMask && pMask->pDrawable) { - pMaskPix = exaGetDrawablePixmap(pMask->pDrawable); - RegionNull(&pExaScr->maskReg); - maskReg = &pExaScr->maskReg; -+ pExaScr->maskPix = pMaskPix; - if (pMask != pDst && pMask != pSrc) - RegionTranslate(pMask->pCompositeClip, - -pMask->pDrawable->x, -pMask->pDrawable->y); -- } -+ } else -+ pExaScr->maskPix = NULL; - - RegionTranslate(pDst->pCompositeClip, - -pDst->pDrawable->x, -pDst->pDrawable->y); --- -cgit v0.9.0.2-2-gbebe |