Packages for RHEL 5 and Ubuntu 12.04 are no longer maintained, so remove those files.tags/v1.9.90
@@ -1,31 +0,0 @@ | |||
tigervnc (1.3.0-3ubuntu1) precise; urgency=low | |||
* Build Xvnc against native upstream xorg sources, using native config | |||
options. Use distro-specific fltk1.3 sources. | |||
-- Brian P. Hinz <bphinz@users.sourceforge.net> Sun, 14 Jul 2013 15:22:28 -0400 | |||
tigervnc (1.3.0-3) precise; urgency=low | |||
* Additional dependencies (derived from ldd | dpkg -S). | |||
-- Brian P. Hinz <bphinz@users.sourceforge.net> Sun, 07 Jul 2013 11:01:33 -0400 | |||
tigervnc (1.3.0-2) precise; urgency=low | |||
* Added build dependencies to improve font support in viewer. | |||
-- Brian P. Hinz <bphinz@users.sourceforge.net> Sun, 07 Jul 2013 10:44:05 -0400 | |||
tigervnc (1.3.0-1) precise; urgency=low | |||
* Removed java viewer from server package. Fixed typo in server | |||
dependencies. | |||
-- Brian P. Hinz <bphinz@users.sourceforge.net> Sun, 07 Jul 2013 09:55:44 -0400 | |||
tigervnc (1.3.0) precise; urgency=low | |||
* Initial release. | |||
-- Brian P. Hinz <bphinz@users.sourceforge.net> Fri, 05 Jul 2013 00:47:02 -0400 |
@@ -1 +0,0 @@ | |||
9 |
@@ -1,70 +0,0 @@ | |||
Source: tigervnc | |||
Section: x11 | |||
Priority: optional | |||
Maintainer: Brian P. Hinz <bphinz@users.sourceforge.net> | |||
Standards-Version: 3.8.4 | |||
Build-Depends: debhelper (>> 7.1), zlib1g-dev, libjpeg-turbo8-dev, libxaw7-dev (>> 4.1.0), perl-modules, xfonts-base, xutils-dev, libx11-dev, libxau-dev, libxext-dev, libxi-dev, libxkbfile-dev, libxmu-dev, libxt-dev, x11proto-core-dev, cmake (>> 2.8), libgnutls28-dev, libpam0g-dev, libpng-dev, automake, autoconf, libtool, pkg-config, libpixman-1-dev, x11proto-bigreqs-dev, x11proto-composite-dev, x11proto-damage-dev, x11proto-dri2-dev, x11proto-fixes-dev, x11proto-fonts-dev, x11proto-gl-dev, x11proto-input-dev, x11proto-kb-dev, x11proto-randr-dev, x11proto-render-dev, x11proto-resource-dev, x11proto-scrnsaver-dev, x11proto-video-dev, x11proto-xcmisc-dev, x11proto-xext-dev, x11proto-xf86bigfont-dev, x11proto-xf86dga-dev, x11proto-xf86dri-dev, x11proto-xf86misc-dev, x11proto-xf86vidmode-dev, x11proto-xinerama-dev, libosmesa6-dev, libgl1-mesa-dev, libgl1-mesa-dri, libgl1-mesa-glx, libxfont-dev, x11proto-record-dev, default-jdk, libxtst-dev, libxft-dev, libexpat1-dev, libfontconfig1-dev, libxrender-dev, libt1-dev, libpciaccess-dev, curl, bzip2, quilt, libglu1-mesa-dev, libxcursor-dev, libxinerama-dev, libxfixes-dev, libxdamage-dev, libgcrypt11-dev | |||
Homepage: http://www.tigervnc.com | |||
Package: tigervncserver | |||
Architecture: any | |||
Provides: xserver, vnc-server | |||
Depends: x11-common | xserver-common, x11-utils, xauth, libbz2-1.0, libc6, libfontenc1, libfreetype6, libgcc1, libgl1-mesa-dri, libgnutls28, libjpeg-turbo8, libp11-kit0, libpam0g, libpixman-1-0, libstdc++6, libtasn1-3, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxfont1, libxtst6, zlib1g, libglu1-mesa, libxcursor1, libxinerama1, libxfixes3, x11-xkb-utils, libgcrypt11 | |||
Recommends: xfonts-base, x11-xserver-utils | |||
Suggests: xtigervncviewer, tigervnc-java | |||
Description: virtual network computing server software | |||
Virtual Network Computing (VNC) is a remote display system which allows you to | |||
view and interact with a virtual desktop environment that is running on another | |||
computer on the network. Using VNC, you can run graphical applications on a | |||
remote machine and send only the display from these applications to your local | |||
machine. VNC is platform-independent and supports a wide variety of operating | |||
systems and architectures as both servers and clients. | |||
. | |||
TigerVNC is a high-speed version of VNC based on the RealVNC 4 and X.org code | |||
bases. TigerVNC started as a next-generation development effort for TightVNC | |||
on Unix and Linux platforms, but it split from its parent project in early 2009 | |||
so that TightVNC could focus on Windows platforms. TigerVNC supports a variant | |||
of Tight encoding that is greatly accelerated by the use of the libjpeg-turbo | |||
JPEG codec. | |||
Package: xtigervncviewer | |||
Architecture: any | |||
Provides: vncviewer, vnc-viewer | |||
Depends: libc6, libexpat1, libfontconfig1, libfreetype6, libgcc1, libgnutls28, libjpeg-turbo8, libp11-kit0, libpng12-0, libstdc++6, libtasn1-3, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxft2, libxrender1, zlib1g, libglu1-mesa | |||
Recommends: xfonts-base | |||
Suggests: tigervncserver, ssh | |||
Description: virtual network computing client software for X | |||
Virtual Network Computing (VNC) is a remote display system which allows you to | |||
view and interact with a virtual desktop environment that is running on another | |||
computer on the network. Using VNC, you can run graphical applications on a | |||
remote machine and send only the display from these applications to your local | |||
machine. VNC is platform-independent and supports a wide variety of operating | |||
systems and architectures as both servers and clients. | |||
. | |||
TigerVNC is a high-speed version of VNC based on the RealVNC 4 and X.org code | |||
bases. TigerVNC started as a next-generation development effort for TightVNC | |||
on Unix and Linux platforms, but it split from its parent project in early 2009 | |||
so that TightVNC could focus on Windows platforms. TigerVNC supports a variant | |||
of Tight encoding that is greatly accelerated by the use of the libjpeg-turbo | |||
JPEG codec. | |||
Package: tigervnc-java | |||
Architecture: any | |||
Suggests: tigervncserver | |||
Provides: vncviewer, vnc-viewer | |||
Depends: default-jre | |||
Description: TigerVNC java applet | |||
Virtual Network Computing (VNC) is a remote display system which allows you to | |||
view and interact with a virtual desktop environment that is running on another | |||
computer on the network. Using VNC, you can run graphical applications on a | |||
remote machine and send only the display from these applications to your local | |||
machine. VNC is platform-independent and supports a wide variety of operating | |||
systems and architectures as both servers and clients. | |||
. | |||
TigerVNC is a high-speed version of VNC based on the RealVNC 4 and X.org code | |||
bases. TigerVNC started as a next-generation development effort for TightVNC | |||
on Unix and Linux platforms, but it split from its parent project in early 2009 | |||
so that TightVNC could focus on Windows platforms. TigerVNC supports a variant | |||
of Tight encoding that is greatly accelerated by the use of the libjpeg-turbo | |||
JPEG codec. | |||
@@ -1,116 +0,0 @@ | |||
This package was packaged for Debian by Brian P. Hinz <bphinz@users.sourceforge.net> | |||
on Tue, 02 Jul 2013 21:33:24 +0500 using the tightvnc package as a base. | |||
It was downloaded from: | |||
https://www.tigervnc.org/ | |||
COPYRIGHT: | |||
========== | |||
TigerVNC is | |||
Copyright (C) 1999 AT&T Laboratories Cambridge | |||
Copyright (C) 2002-2005 RealVNC Ltd. | |||
Copyright (C) 2000-2006 TightVNC Group | |||
Copyright (C) 2005-2006 Martin Koegler | |||
Copyright (C) 2005-2006 Sun Microsystems, Inc. | |||
Copyright (C) 2006 OCCAM Financial Technology | |||
Copyright (C) 2000-2008 Constantin Kaplinsky | |||
Copyright (C) 2004-2009 Peter Astrand for Cendio AB | |||
Copyright (C) 2010 Antoine Martin | |||
Copyright (C) 2010 m-privacy GmbH | |||
Copyright (C) 2009-2011 D. R. Commander | |||
Copyright (C) 2009-2011 Pierre Ossman for Cendio AB | |||
Copyright (C) 2004, 2009-2011 Red Hat, Inc. | |||
Copyright (C) 2009-2011 TigerVNC Team | |||
All Rights Reserved. | |||
This software is distributed under the GNU General Public Licence as published | |||
by the Free Software Foundation. See the file LICENCE.TXT for the conditions | |||
under which this software is made available. TigerVNC also contains code from | |||
other sources. See the Acknowledgements section below, and the individual | |||
source files, for details of the conditions under which they are made | |||
available. | |||
ACKNOWLEDGEMENTS | |||
================ | |||
This distribution contains zlib compression software. This is: | |||
Copyright (C) 1995-2002 Jean-loup Gailly and Mark Adler | |||
This software is provided 'as-is', without any express or implied | |||
warranty. In no event will the authors be held liable for any damages | |||
arising from the use of this software. | |||
Permission is granted to anyone to use this software for any purpose, | |||
including commercial applications, and to alter it and redistribute it | |||
freely, subject to the following restrictions: | |||
1. The origin of this software must not be misrepresented; you must not | |||
claim that you wrote the original software. If you use this software | |||
in a product, an acknowledgment in the product documentation would be | |||
appreciated but is not required. | |||
2. Altered source versions must be plainly marked as such, and must not be | |||
misrepresented as being the original software. | |||
3. This notice may not be removed or altered from any source distribution. | |||
Jean-loup Gailly Mark Adler | |||
jloup@gzip.org madler@alumni.caltech.edu | |||
The data format used by the zlib library is described by RFCs (Request for | |||
Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt | |||
(zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). | |||
This distribution contains public domain DES software by Richard Outerbridge. | |||
This is: | |||
Copyright (c) 1988,1989,1990,1991,1992 by Richard Outerbridge. | |||
(GEnie : OUTER; CIS : [71755,204]) Graven Imagery, 1992. | |||
This distribution contains software from the X Window System. This is: | |||
Copyright 1987, 1988, 1998 The Open Group | |||
Permission to use, copy, modify, distribute, and sell this software and its | |||
documentation for any purpose is hereby granted without fee, provided that | |||
the above copyright notice appear in all copies and that both that | |||
copyright notice and this permission notice appear in supporting | |||
documentation. | |||
The above copyright notice and this permission notice shall be included in | |||
all copies or substantial portions of the Software. | |||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN | |||
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
Except as contained in this notice, the name of The Open Group shall not be | |||
used in advertising or otherwise to promote the sale, use or other dealings | |||
in this Software without prior written authorization from The Open Group. | |||
Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. | |||
All Rights Reserved | |||
Permission to use, copy, modify, and distribute this software and its | |||
documentation for any purpose and without fee is hereby granted, | |||
provided that the above copyright notice appear in all copies and that | |||
both that copyright notice and this permission notice appear in | |||
supporting documentation, and that the name of Digital not be | |||
used in advertising or publicity pertaining to distribution of the | |||
software without specific, written prior permission. | |||
DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING | |||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL | |||
DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR | |||
ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, | |||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, | |||
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS | |||
SOFTWARE. |
@@ -1,38 +0,0 @@ | |||
#!/bin/bash | |||
#curl -L -o tigervnc-1.3.0.tar.bz2 "http://downloads.sourceforge.net/project/tigervnc/tigervnc/1.3.0/tigervnc-1.3.0.tar.bz2" | |||
#tar xjf tigervnc-*.tar.bz2 | |||
#rm tigervnc-*.tar.bz2 | |||
curl -OL http://sourceforge.net/code-snapshots/svn/t/ti/tigervnc/code/tigervnc-code-5136-trunk.zip | |||
unzip tigervnc-code-*-trunk.zip | |||
mv tigervnc-code-*-trunk tigervnc-1.3.80 | |||
rm tigervnc-code-*-trunk.zip | |||
pushd tigervnc-* | |||
curl -L -o fltk-1.3.2-source.tar.gz 'http://anonscm.debian.org/gitweb/?p=users/ucko/fltk1.3.git;a=snapshot;h=HEAD;sf=tgz' | |||
tar xzf fltk-*-source.tar.gz | |||
rm fltk-*-source.tar.gz | |||
mv fltk1.3-* fltk-1.3.2 | |||
pushd fltk-* | |||
sh ../../debian/patch_fltk.sh | |||
find . -name "*.orig" -exec rm {} \; | |||
popd | |||
curl -L -o xorg-server-1.11.4-0ubuntu10.3.tar.gz 'http://anonscm.debian.org/gitweb/?p=pkg-xorg/xserver/xorg-server.git;a=snapshot;h=cbf435a091906484112f5c4cf35b17738e779ce9;sf=tgz' | |||
tar xzf xorg-server-*.tar.gz | |||
rm xorg-server-*.tar.gz | |||
pushd xorg-server-* | |||
QUILT_PATCHES=debian/patches quilt push -a | |||
popd | |||
cp -r xorg-server-*/* unix/xserver | |||
rm -rf xorg-server-* | |||
pushd unix/xserver | |||
for all in `find . -type f -perm -001`; do | |||
chmod -x "$all" | |||
done | |||
patch -p1 -b --suffix .vnc < ../xserver111.patch | |||
popd | |||
popd | |||
if [ -e tigervnc_1.3.80.orig.tar.gz ] ; then | |||
rm tigervnc_1.3.80.orig.tar.gz | |||
fi | |||
tar czf tigervnc_1.3.80.orig.tar.gz tigervnc-1.3.80 | |||
rm -rf tigervnc-1.3.80 |
@@ -1,94 +0,0 @@ | |||
#!/bin/bash | |||
# | |||
# Init file for TigerVNC Server | |||
# | |||
# chkconfig: - 91 35 | |||
# description: TigerVNC remote X administration daemon. | |||
# | |||
# processname: Xvnc | |||
### BEGIN INIT INFO | |||
# Provides: vncservers | |||
# Required-Start: networking | |||
# Required-Stop: networking | |||
# Default-Start: | |||
# Default-Stop: 0 1 2 3 4 5 6 | |||
# Short-Description: Starts and stops vncserver | |||
# Description: Used to provide remote X administration services. | |||
### END INIT INFO | |||
# Source function library. | |||
. /lib/lsb/init-functions | |||
### Default variables | |||
SYSCONFIG="/etc/default/vncservers" | |||
VNCSERVERS="" | |||
### Read configuration | |||
[ -r "$SYSCONFIG" ] && . "$SYSCONFIG" | |||
RETVAL=0 | |||
prog=$"VNC server" | |||
start() { | |||
echo -n $"Starting $prog: " | |||
ulimit -S -c 0 >/dev/null 2>&1 | |||
for display in ${VNCSERVERS}; do | |||
echo -n "${display} " | |||
if [ -r $(eval echo ~${display##*:})/.vnc/passwd ]; then | |||
unset BASH_ENV ENV | |||
log_begin_msg "Starting VNC Server for user ${display##*:}:" | |||
su ${display##*:} -c "cd ~${display##*:} && [ -f .vnc/passwd ] && vncserver :${display%%:*} ${VNCSERVERARGS[${display%:*}]}" | |||
RETVAL="$?" | |||
if [ "$RETVAL" -ne 0 ]; then | |||
log_end_msg 1 | |||
break | |||
else | |||
log_end_msg 0 | |||
fi | |||
else | |||
log_begin_msg "Not starting VNC Server for user ${display##*:}.\n File \"~${display##*:}/.vnc/passwd\" not found.\n Create a password file for the VNC server with vncpasswd" | |||
log_end_msg 1 | |||
fi | |||
done | |||
echo | |||
[ "$RETVAL" -eq 0 ] && touch "/var/lock/vncserver" | |||
return $RETVAL | |||
} | |||
stop() { | |||
echo -n $"Shutting down $desc: " | |||
for display in ${VNCSERVERS}; do | |||
echo -n "${display} " | |||
unset BASH_ENV ENV | |||
log_begin_msg "Shutting down VNC Server for user ${display##*:}: " | |||
su ${display##*:} -c "vncserver -kill :${display%%:*}" >/dev/null 2>&1 | |||
RETVAL="$?" | |||
[ "$RETVAL" -eq 0 ] && log_end_msg 0 || log_end_msg 1 | |||
done | |||
echo | |||
[ "$RETVAL" -eq 0 ] && rm -f "/var/lock/vncserver" | |||
return $RETVAL | |||
} | |||
restart() { | |||
stop | |||
start | |||
} | |||
case "$1" in | |||
start) | |||
start | |||
;; | |||
stop) | |||
stop | |||
;; | |||
restart|reload) | |||
restart | |||
;; | |||
*) | |||
echo $"Usage: $0 {start|stop|restart}" | |||
RETVAL=1 | |||
esac | |||
exit $RETVAL |
@@ -1,19 +0,0 @@ | |||
# The VNCSERVERS variable is a list of display:user pairs. | |||
# | |||
# Uncomment the lines below to start a VNC server on display :2 | |||
# as my 'myusername' (adjust this to your own). You will also | |||
# need to set a VNC password; run 'man vncpasswd' to see how | |||
# to do that. | |||
# | |||
# DO NOT RUN THIS SERVICE if your local area network is | |||
# untrusted! For a secure way of using VNC, see this URL: | |||
# http://kbase.redhat.com/faq/docs/DOC-7028 | |||
# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP. | |||
# Use "-localhost" to prevent remote VNC clients connecting except when | |||
# doing so through a secure tunnel. See the "-via" option in the | |||
# `man vncviewer' manual page. | |||
# VNCSERVERS="2:myusername" | |||
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost" |
@@ -1,52 +0,0 @@ | |||
#!/bin/bash | |||
set -e | |||
apply_patch() | |||
{ | |||
rm -f $2 | |||
curl -OL http://www.fltk.org/strfiles/$1/$2 | |||
patch -p1 < $2 | |||
} | |||
# Export dead key information from FLTK to the apps | |||
# http://www.fltk.org/str.php?L2599 | |||
apply_patch 2599 fltk-1_v4.3.x-keyboard-x11.patch | |||
apply_patch 2599 fltk-1_v4.3.x-keyboard-win32.patch | |||
apply_patch 2599 fltk-1_v6.3.x-keyboard-osx.patch | |||
# Notify applications of changes to the clipboard | |||
# http://www.fltk.org/str.php?L2636 | |||
apply_patch 2636 fltk-1.3.x-clipboard.patch | |||
apply_patch 2636 fltk-1_v6.3.x-clipboard-x11.patch | |||
apply_patch 2636 fltk-1_v3.3.x-clipboard-win32-fix.patch | |||
apply_patch 2636 fltk-1_v2.3.x-clipboard-win32.patch | |||
apply_patch 2636 fltk-1_v2.3.x-clipboard-osx.patch | |||
# Ability to convert a Fl_Pixmap to a Fl_RGB_Image | |||
# http://www.fltk.org/str.php?L2659 | |||
apply_patch 2659 pixmap_v2.patch | |||
# Support for custom cursors | |||
# http://www.fltk.org/str.php?L2660 | |||
apply_patch 2660 fltk-1_v5.3.x-cursor.patch | |||
# Improve modality interaction with WM | |||
# http://www.fltk.org/str.php?L2802 | |||
apply_patch 2802 fltk-1_v2.3.0-modal.patch | |||
# Window icons | |||
# http://www.fltk.org/str.php?L2816 | |||
apply_patch 2816 fltk-1_v3.3.0-icons.patch | |||
# Multihead | |||
# http://fltk.org/str.php?L2860 | |||
apply_patch 2860 fltk-1.3.x-screen_num.patch | |||
apply_patch 2860 fltk-1_v3.3.x-multihead.patch | |||
# Apply DRC's patches to FLTK | |||
curl -L 'https://sourceforge.net/mailarchive/attachment.php?list_name=tigervnc-devel&message_id=512DD1FE.7090609%40users.sourceforge.net&counter=1' -o 0001-Add-BUILD_STATIC-feature-from-TigerVNC-to-optionally.patch | |||
curl -L 'https://sourceforge.net/mailarchive/attachment.php?list_name=tigervnc-devel&message_id=512DD1FE.7090609%40users.sourceforge.net&counter=2' -o 0002-Fl_cocoa.mm-depends-on-some-Carbon-functions-so-we-n.patch | |||
curl -L 'https://sourceforge.net/mailarchive/attachment.php?list_name=tigervnc-devel&message_id=512DD1FE.7090609%40users.sourceforge.net&counter=3' -o 0003-We-need-to-unset-CMAKE_REQUIRED_LIBRARIES-after-chec.patch | |||
patch -p1 -i 0001-Add-BUILD_STATIC-feature-from-TigerVNC-to-optionally.patch | |||
patch -p1 -i 0002-Fl_cocoa.mm-depends-on-some-Carbon-functions-so-we-n.patch | |||
patch -p1 -i 0003-We-need-to-unset-CMAKE_REQUIRED_LIBRARIES-after-chec.patch |
@@ -1,26 +0,0 @@ | |||
--- a/unix/xserver/hw/vnc/xvnc.c 2013-07-14 14:05:29.963390223 -0400 | |||
+++ b/unix/xserver/hw/vnc/xvnc.c 2013-07-14 14:04:12.840357191 -0400 | |||
@@ -250,7 +250,7 @@ | |||
#if XORG < 111 | |||
AbortDDX() | |||
#else | |||
-AbortDDX(enum ExitCode error) | |||
+SigAbortDDX(int signo, enum ExitCode error) | |||
#endif | |||
{ | |||
#if XORG < 111 | |||
@@ -260,6 +260,14 @@ | |||
#endif | |||
} | |||
+#if XORG >= 111 | |||
+void | |||
+AbortDDX(enum ExitCode error) | |||
+{ | |||
+ SigAbortDDX(0, error); | |||
+} | |||
+#endif | |||
+ | |||
#ifdef __DARWIN__ | |||
void | |||
DarwinHandleGUI(int argc, char *argv[]) |
@@ -1,10 +0,0 @@ | |||
--- a/unix/xserver/man/Makefile.am 2013-03-30 17:51:01.707258746 -0400 | |||
+++ b/unix/xserver/man/Makefile.am 2013-03-30 17:51:47.606569692 -0400 | |||
@@ -2,5 +2,7 @@ | |||
# (i.e. those handled in the os/utils.c options processing instead of in | |||
# the DDX-level options processing) | |||
+if ENABLE_DOCS | |||
include $(top_srcdir)/manpages.am | |||
appman_PRE = Xserver.man | |||
+endif ENABLE_DOCS |
@@ -1,52 +0,0 @@ | |||
--- a/ltmain.sh 2016-05-11 23:23:25.796742323 -0400 | |||
+++ b/ltmain.sh 2016-05-11 23:24:47.173010324 -0400 | |||
@@ -6447,6 +6447,9 @@ | |||
# It is a libtool convenience library, so add in its objects. | |||
func_append convenience " $ladir/$objdir/$old_library" | |||
func_append old_convenience " $ladir/$objdir/$old_library" | |||
+ elif test "$linkmode" != prog && test "$linkmode" != lib; then | |||
+ func_fatal_error "\`$lib' is not a convenience library" | |||
+ fi | |||
tmp_libs= | |||
for deplib in $dependency_libs; do | |||
deplibs="$deplib $deplibs" | |||
@@ -6457,9 +6460,6 @@ | |||
fi | |||
func_append tmp_libs " $deplib" | |||
done | |||
- elif test "$linkmode" != prog && test "$linkmode" != lib; then | |||
- func_fatal_error "\`$lib' is not a convenience library" | |||
- fi | |||
continue | |||
fi # $pass = conv | |||
--- a/m4/libtool.m4 2016-05-11 23:26:23.801328557 -0400 | |||
+++ b/m4/libtool.m4 2016-05-11 23:27:12.701489603 -0400 | |||
@@ -4589,9 +4589,6 @@ | |||
;; | |||
esac | |||
;; | |||
- linux* | k*bsd*-gnu | gnu*) | |||
- _LT_TAGVAR(link_all_deplibs, $1)=no | |||
- ;; | |||
*) | |||
_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' | |||
;; | |||
@@ -4654,9 +4651,6 @@ | |||
openbsd*) | |||
with_gnu_ld=no | |||
;; | |||
- linux* | k*bsd*-gnu | gnu*) | |||
- _LT_TAGVAR(link_all_deplibs, $1)=no | |||
- ;; | |||
esac | |||
_LT_TAGVAR(ld_shlibs, $1)=yes | |||
@@ -5055,7 +5049,6 @@ | |||
if test "$aix_use_runtimelinking" = yes; then | |||
shared_flag="$shared_flag "'${wl}-G' | |||
fi | |||
- _LT_TAGVAR(link_all_deplibs, $1)=no | |||
else | |||
# not using gcc | |||
if test "$host_cpu" = ia64; then |
@@ -1,8 +0,0 @@ | |||
## Patches with a number < 100 are applied in debian. | |||
## Ubuntu patches start with 100. | |||
# Ubuntu patches | |||
100_rethrow_signals.patch | |||
# Upstream patches | |||
516_tigervnc-xorg-manpages.patch |
@@ -1,277 +0,0 @@ | |||
#!/usr/bin/make -f | |||
# Sample debian/rules that uses debhelper. | |||
# GNU copyright 1997 by Joey Hess. | |||
# Uncomment this to turn on verbose mode. | |||
#export DH_VERBOSE=1 | |||
# These are used for cross-compiling and for saving the configure script | |||
# from having to guess our platform (since we know it already) | |||
#DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) | |||
#DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) | |||
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) | |||
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) | |||
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) | |||
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) | |||
DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) | |||
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) | |||
confflags += --build=$(DEB_HOST_GNU_TYPE) | |||
else | |||
confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) | |||
endif | |||
SOURCE_NAME := tigervnc | |||
SOURCE_VERSION := $(shell dpkg-parsechangelog | awk -F': ' '/^Version: / {print $$2}') | |||
BUILDER=For technical support please see http://sourceforge.net/projects/tigervnc/support | |||
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) | |||
CFLAGS += -g -O2 -fPIC | |||
endif | |||
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) | |||
INSTALL_PROGRAM += -s | |||
endif | |||
export CC = gcc | |||
get-orig-source: $(SOURCE_NAME)_$(SOURCE_VERSION).orig.tar.gz | |||
@ | |||
$(SOURCE_NAME)_$(SOURCE_VERSION).orig.tar.gz: | |||
$(CURDIR)/get-orig-source.sh | |||
configure: config-stamp | |||
config-stamp: | |||
dh_testdir | |||
# Add here commands to configure the package. | |||
(cd fltk-*;cmake -G"Unix Makefiles" \ | |||
-DCMAKE_INSTALL_PREFIX=/usr \ | |||
-DCMAKE_BUILD_TYPE=Release \ | |||
-DOPTION_PREFIX_LIB=/usr/lib \ | |||
-DOPTION_PREFIX_CONFIG=/usr/lib \ | |||
-DOPTION_BUILD_EXAMPLES=off \ | |||
-DOPTION_USE_SYSTEM_LIBPNG=on;make) | |||
cmake -G"Unix Makefiles" \ | |||
-DBUILD_STATIC=off \ | |||
-DCMAKE_INSTALL_PREFIX=/usr \ | |||
-DFLTK_LIBRARIES="$(CURDIR)/fltk-1.3.4-1/lib/libfltk.a;$(CURDIR)/fltk-1.3.4-1/lib/libfltk_images.a;-lpng" \ | |||
-DFLTK_INCLUDE_DIR=$(CURDIR)/fltk-1.3.4-1 | |||
(cd unix/xserver; \ | |||
export PIXMANINCDIR=/usr/include/pixman-1; \ | |||
autoreconf -fiv; \ | |||
patch -p1 -i ../../debian/patches/debian_libtool.patch; \ | |||
./configure --prefix=/usr \ | |||
--disable-silent-rules \ | |||
--disable-static \ | |||
--without-dtrace \ | |||
--disable-strict-compilation \ | |||
--disable-debug \ | |||
--disable-unit-tests \ | |||
--with-int10=x86emu \ | |||
--with-extra-module-dir="/usr/lib/${DEB_HOST_MULTIARCH}/xorg/extra-modules,/usr/lib/xorg/extra-modules" \ | |||
--with-os-vendor="$(VENDOR)" \ | |||
--with-builderstring="$(SOURCE_NAME) $(SOURCE_VERSION) ($(BUILDER))" \ | |||
--with-xkb-path=/usr/share/X11/xkb \ | |||
--with-xkb-output=/var/lib/xkb \ | |||
--with-default-xkb-rules=evdev \ | |||
--disable-devel-docs \ | |||
--disable-install-libxf86config \ | |||
--enable-mitshm \ | |||
--enable-xres \ | |||
--disable-xcsecurity \ | |||
--disable-xcalibrate \ | |||
--disable-tslib \ | |||
--enable-dbe \ | |||
--disable-xf86bigfont \ | |||
--disable-dpms \ | |||
--disable-config-dbus \ | |||
--disable-config-hal \ | |||
--disable-config-udev \ | |||
--disable-xorg \ | |||
--disable-xquartz \ | |||
--disable-xwin \ | |||
--disable-xfake \ | |||
--disable-install-setuid \ | |||
--enable-gestures \ | |||
--with-default-font-path="/usr/share/fonts/X11/misc,/usr/share/fonts/X11/cyrillic,/usr/share/fonts/X11/100dpi/:unscaled,/usr/share/fonts/X11/75dpi/:unscaled,/usr/share/fonts/X11/Type1,/usr/share/fonts/X11/100dpi,/usr/share/fonts/X11/75dpi,/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType,built-ins" \ | |||
--enable-aiglx \ | |||
--enable-glx-tls \ | |||
--enable-registry \ | |||
--enable-composite \ | |||
--enable-record \ | |||
--enable-xv \ | |||
--enable-xvmc \ | |||
--enable-dga \ | |||
--enable-screensaver \ | |||
--enable-xdmcp \ | |||
--enable-xdm-auth-1 \ | |||
--enable-glx \ | |||
--disable-dri --enable-dri2 \ | |||
--enable-xinerama \ | |||
--enable-xf86vidmode \ | |||
--enable-xace \ | |||
--disable-selinux \ | |||
--enable-xfree86-utils \ | |||
--disable-dmx \ | |||
--disable-xvfb \ | |||
--disable-xnest \ | |||
--disable-kdrive \ | |||
--disable-xephyr \ | |||
--enable-xfbdev \ | |||
--with-sha1=libgcrypt \ | |||
--enable-xcsecurity \ | |||
--disable-docs \ | |||
--disable-selective-werror) | |||
touch config-stamp | |||
build-arch: config-stamp build-arch-stamp | |||
build-arch-stamp: | |||
dh_testdir | |||
# Add here command to compile/build the package. | |||
# Build first things. | |||
# Build Xvnc | |||
make LDFLAGS="-lpng" | |||
(cd unix/xserver;make) | |||
touch build-arch-stamp | |||
build-indep: config-stamp build-indep-stamp | |||
build-indep-stamp: | |||
dh_testdir | |||
# Add here command to compile/build the arch indep package. | |||
# It's ok not to do anything here, if you don't need to build | |||
# anything for this package. | |||
#/usr/bin/docbook-to-man debian/vnc.sgml > vnc.1 | |||
(cd media;make) | |||
(cd java;cmake -G"Unix Makefiles";make) | |||
touch build-indep-stamp | |||
build: build-arch build-indep | |||
clean: | |||
dh_testdir | |||
dh_testroot | |||
rm -f build-arch-stamp build-indep-stamp config-stamp | |||
# Add here commands to clean up after the build process. | |||
dh_clean | |||
install: DH_OPTIONS= | |||
install: build | |||
dh_testdir | |||
dh_testroot | |||
dh_clean -k | |||
dh_prep | |||
dh_installdirs | |||
# Add here commands to install the package into debian/vnc. | |||
# tigervncserver | |||
make install DESTDIR=$(CURDIR)/debian/tigervncserver | |||
(cd unix/xserver/hw/vnc; make install DESTDIR=$(CURDIR)/debian/tigervncserver) | |||
mv $(CURDIR)/debian/tigervncserver/usr/bin/Xvnc \ | |||
$(CURDIR)/debian/tigervncserver/usr/bin/Xtigervnc | |||
mv $(CURDIR)/debian/tigervncserver/usr/bin/vncconfig \ | |||
$(CURDIR)/debian/tigervncserver/usr/bin/tigervncconfig | |||
mv $(CURDIR)/debian/tigervncserver/usr/bin/vncpasswd \ | |||
$(CURDIR)/debian/tigervncserver/usr/bin/tigervncpasswd | |||
mv $(CURDIR)/debian/tigervncserver/usr/bin/vncserver \ | |||
$(CURDIR)/debian/tigervncserver/usr/bin/tigervncserver | |||
mv $(CURDIR)/debian/tigervncserver/usr/bin/x0vncserver \ | |||
$(CURDIR)/debian/tigervncserver/usr/bin/x0tigervncserver | |||
mv $(CURDIR)/debian/tigervncserver/usr/share/man/man1/vncconfig.1 \ | |||
$(CURDIR)/debian/tigervncserver/usr/share/man/man1/tigervncconfig.1 | |||
mv $(CURDIR)/debian/tigervncserver/usr/share/man/man1/vncpasswd.1 \ | |||
$(CURDIR)/debian/tigervncserver/usr/share/man/man1/tigervncpasswd.1 | |||
mv $(CURDIR)/debian/tigervncserver/usr/share/man/man1/vncserver.1 \ | |||
$(CURDIR)/debian/tigervncserver/usr/share/man/man1/tigervncserver.1 | |||
mv $(CURDIR)/debian/tigervncserver/usr/share/man/man1/x0vncserver.1 \ | |||
$(CURDIR)/debian/tigervncserver/usr/share/man/man1/x0tigervncserver.1 | |||
mv $(CURDIR)/debian/tigervncserver/usr/share/man/man1/Xvnc.1 \ | |||
$(CURDIR)/debian/tigervncserver/usr/share/man/man1/Xtigervnc.1 | |||
mv $(CURDIR)/debian/tigervncserver/usr/share/doc/tigervnc-* \ | |||
$(CURDIR)/debian/tigervncserver/usr/share/doc/tigervncserver | |||
rm $(CURDIR)/debian/tigervncserver/usr/lib/xorg/modules/extensions/libvnc.la | |||
rm $(CURDIR)/debian/tigervncserver/usr/bin/vncviewer | |||
rm $(CURDIR)/debian/tigervncserver/usr/share/man/man1/vncviewer.1 | |||
install -o root -g root -m 755 -D $(CURDIR)/debian/local/vncserver.service \ | |||
$(CURDIR)/debian/tigervncserver/etc/init.d/vncserver | |||
install -o root -g root -m 644 -D $(CURDIR)/debian/local/vncserver.sysconfig \ | |||
$(CURDIR)/debian/tigervncserver/etc/default/vncservers | |||
# xtigervncviewer | |||
(cd vncviewer; make install DESTDIR=$(CURDIR)/debian/xtigervncviewer) | |||
# Install desktop stuff | |||
mv $(CURDIR)/debian/xtigervncviewer/usr/bin/vncviewer \ | |||
$(CURDIR)/debian/xtigervncviewer/usr/bin/xtigervncviewer | |||
mv $(CURDIR)/debian/xtigervncviewer/usr/share/man/man1/vncviewer.1 \ | |||
$(CURDIR)/debian/xtigervncviewer/usr/share/man/man1/xtigervncviewer.1 | |||
# tigervnc-java | |||
mkdir -p $(CURDIR)/debian/tigervnc-java/usr/share | |||
(cd java; make install DESTDIR=$(CURDIR)/debian/tigervnc-java/usr/share) | |||
#dh_movefiles | |||
# Build architecture-independent files here. | |||
# Pass -i to all debhelper commands in this target to reduce clutter. | |||
binary-indep: build install | |||
binary-indep-keep: | |||
dh_testdir -i | |||
dh_testroot -i | |||
# dh_installdebconf -i | |||
dh_install | |||
dh_installdocs -i | |||
dh_installexamples -i | |||
dh_installmenu -i | |||
# dh_installlogrotate -i | |||
# dh_installemacsen -i | |||
# dh_installpam -i | |||
# dh_installmime -i | |||
# dh_installinit -i | |||
dh_installcron -i | |||
dh_installman -i | |||
dh_installinfo -i | |||
# dh_undocumented -i | |||
dh_installchangelogs -i | |||
dh_link -i | |||
dh_compress -i | |||
dh_fixperms -i | |||
dh_installdeb -i | |||
dh_perl -i | |||
dh_gencontrol -i | |||
dh_md5sums -i | |||
dh_builddeb -i | |||
# Build architecture-dependent files here. | |||
binary-arch: build install | |||
dh_testdir -a | |||
dh_testroot -a | |||
# dh_installdebconf -a | |||
dh_installdocs -a | |||
# dh_installexamples -a | |||
dh_installmenu -a | |||
# dh_installlogrotate -a | |||
# dh_installemacsen -a | |||
# dh_installpam -a | |||
# dh_installmime -a | |||
dh_install | |||
dh_installinit -a | |||
# dh_installcron -a | |||
dh_installman -a | |||
dh_installinfo -a | |||
# dh_undocumented -a | |||
dh_installchangelogs -a | |||
# Remove empty directories | |||
dh_strip -a | |||
dh_link -a | |||
dh_compress -a | |||
dh_fixperms -a | |||
dh_makeshlibs -a | |||
dh_installdeb -a | |||
dh_perl -a | |||
dh_shlibdeps -a | |||
dh_gencontrol -a | |||
dh_md5sums -a | |||
dh_builddeb -a | |||
binary: binary-indep binary-arch | |||
.PHONY: build clean binary-indep binary-arch binary install get-orig-source |
@@ -1 +0,0 @@ | |||
3.0 (quilt) |
@@ -1,30 +0,0 @@ | |||
#!/bin/sh -e | |||
if [ "$1" = "configure" ]; then | |||
MAN=/usr/share/man/man1 | |||
BIN=/usr/bin | |||
update-alternatives --install \ | |||
$BIN/vncserver vncserver $BIN/tigervncserver 64 \ | |||
--slave \ | |||
$MAN/vncserver.1.gz vncserver.1.gz $MAN/tigervncserver.1.gz | |||
update-alternatives --install \ | |||
$BIN/Xvnc Xvnc $BIN/Xtigervnc 74 \ | |||
--slave \ | |||
$MAN/Xvnc.1.gz Xvnc.1.gz $MAN/Xtigervnc.1.gz | |||
update-alternatives --install \ | |||
$BIN/x0vncserver x0vncserver $BIN/x0tigervncserver 74 \ | |||
--slave \ | |||
$MAN/x0vncserver.1.gz x0vncserver.1.gz $MAN/x0tigervncserver.1.gz | |||
update-alternatives --install \ | |||
$BIN/vncpasswd vncpasswd $BIN/tigervncpasswd 74 \ | |||
--slave \ | |||
$MAN/vncpasswd.1.gz vncpasswd.1.gz $MAN/tigervncpasswd.1.gz | |||
update-alternatives --install \ | |||
$BIN/vncconfig vncconfig $BIN/tigervncconfig 64 \ | |||
--slave \ | |||
$MAN/vncconfig.1.gz vncconfig.1.gz $MAN/tigervncconfig.1.gz | |||
fi | |||
#DEBHELPER# | |||
exit 0 |
@@ -1,19 +0,0 @@ | |||
#!/bin/sh -e | |||
if [ "$1" = "remove" ] ; then | |||
BIN=/usr/bin | |||
update-alternatives --remove \ | |||
vncserver $BIN/tigervncserver | |||
update-alternatives --remove \ | |||
Xvnc $BIN/Xtigervnc | |||
update-alternatives --remove \ | |||
x0vncserver $BIN/x0tigervncserver | |||
update-alternatives --remove \ | |||
vncpasswd $BIN/tigervncpasswd | |||
update-alternatives --remove \ | |||
tigervncconfig $BIN/tigervncconfig | |||
fi | |||
#DEBHELPER# | |||
exit 0 |
@@ -1,5 +0,0 @@ | |||
?package(xtigervncviewer):needs="x11" \ | |||
section="Applications/Network/Communication" \ | |||
hints="VNC,remote-control"\ | |||
title="xtigervncviewer" \ | |||
command="/usr/bin/xtigervncviewer" |
@@ -1,18 +0,0 @@ | |||
#!/bin/sh -e | |||
if [ "$1" = "configure" ]; then | |||
MAN=/usr/share/man/man1 | |||
BIN=/usr/bin | |||
update-alternatives --install \ | |||
$BIN/vncviewer vncviewer $BIN/xtigervncviewer 74 \ | |||
--slave \ | |||
$MAN/vncviewer.1.gz vncviewer.1.gz $MAN/xtigervncviewer.1.gz \ | |||
--slave \ | |||
$MAN/xvncviewer.1.gz xvncviewer.1.gz $MAN/xtigervncviewer.1.gz \ | |||
--slave \ | |||
$BIN/xvncviewer xvncviewer $BIN/xtigervncviewer | |||
fi | |||
#DEBHELPER# | |||
exit 0 |
@@ -1,11 +0,0 @@ | |||
#!/bin/sh -e | |||
if [ "$1" = "remove" ] ; then | |||
BIN=/usr/bin | |||
update-alternatives --remove \ | |||
vncviewer $BIN/xtigervncviewer | |||
fi | |||
#DEBHELPER# | |||
exit 0 |
@@ -1,26 +0,0 @@ | |||
diff --git a/include/dix.h b/include/dix.h | |||
index 21176a8..921156b 100644 | |||
--- a/include/dix.h | |||
+++ b/include/dix.h | |||
@@ -80,7 +80,7 @@ SOFTWARE. | |||
#define REQUEST_FIXED_SIZE(req, n)\ | |||
if (((sizeof(req) >> 2) > client->req_len) || \ | |||
- ((n >> 2) >= client->req_len) || \ | |||
+ (((n) >> 2) >= client->req_len) || \ | |||
((((uint64_t) sizeof(req) + (n) + 3) >> 2) != (uint64_t) client->req_len)) \ | |||
return(BadLength) | |||
diff --git a/os/access.c b/os/access.c | |||
index f393c8d..28f2d32 100644 | |||
--- a/os/access.c | |||
+++ b/os/access.c | |||
@@ -1308,7 +1308,7 @@ GetHosts(void **data, int *pnHosts, int *pLen, BOOL * pEnabled) | |||
} | |||
for (host = validhosts; host; host = host->next) { | |||
len = host->len; | |||
- if ((ptr + sizeof(xHostEntry) + len) > (data + n)) | |||
+ if ((ptr + sizeof(xHostEntry) + len) > ((unsigned char *) *data + n)) | |||
break; | |||
((xHostEntry *) ptr)->family = host->family; | |||
((xHostEntry *) ptr)->length = len; |
@@ -1,80 +0,0 @@ | |||
From 39547d600a13713e15429f49768e54c3173c828d Mon Sep 17 00:00:00 2001 | |||
From: Karl Tomlinson <xmail@karlt.net> | |||
Date: Mon, 18 Feb 2013 01:25:34 +0000 | |||
Subject: MakeBigReq: don't move the last word, already handled by Data32 | |||
MakeBigReq inserts a length field after the first 4 bytes of the request | |||
(after req->length), pushing everything else back by 4 bytes. | |||
The current memmove moves everything but the first 4 bytes back. | |||
If a request aligns to the end of the buffer pointer when MakeBigReq is | |||
invoked for that request, this runs over the buffer. | |||
Instead, we need to memmove minus the first 4 bytes (which aren't moved), | |||
minus the last 4 bytes (so we still align to the previous tail). | |||
The 4 bytes that fell out are already handled with Data32, which will | |||
handle the buffermax correctly. | |||
The case where req->length = 1 was already not functional. | |||
Reported by Abhishek Arya <inferno@chromium.org>. | |||
https://bugzilla.mozilla.org/show_bug.cgi?id=803762 | |||
Reviewed-by: Jeff Muizelaar <jmuizelaar@mozilla.com> | |||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> | |||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> | |||
diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h | |||
index 40965c4..06395b3 100644 | |||
--- a/include/X11/Xlibint.h | |||
+++ b/include/X11/Xlibint.h | |||
@@ -486,6 +486,14 @@ extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len); | |||
req = (xReq *) _XGetRequest(dpy, X_/**/name, SIZEOF(xReq)) | |||
#endif | |||
+/* | |||
+ * MakeBigReq sets the CARD16 "req->length" to 0 and inserts a new CARD32 | |||
+ * length, after req->length, before the data in the request. The new length | |||
+ * includes the "n" extra 32-bit words. | |||
+ * | |||
+ * Do not use MakeBigReq if there is no data already in the request. | |||
+ * req->length must already be >= 2. | |||
+ */ | |||
#ifdef WORD64 | |||
#define MakeBigReq(req,n) \ | |||
{ \ | |||
@@ -493,7 +501,7 @@ extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len); | |||
CARD32 _BRlen = req->length - 1; \ | |||
req->length = 0; \ | |||
_BRdat = ((CARD32 *)req)[_BRlen]; \ | |||
- memmove(((char *)req) + 8, ((char *)req) + 4, _BRlen << 2); \ | |||
+ memmove(((char *)req) + 8, ((char *)req) + 4, (_BRlen - 1) << 2); \ | |||
((CARD32 *)req)[1] = _BRlen + n + 2; \ | |||
Data32(dpy, &_BRdat, 4); \ | |||
} | |||
@@ -504,13 +512,20 @@ extern void *_XGetRequest(Display *dpy, CARD8 type, size_t len); | |||
CARD32 _BRlen = req->length - 1; \ | |||
req->length = 0; \ | |||
_BRdat = ((CARD32 *)req)[_BRlen]; \ | |||
- memmove(((char *)req) + 8, ((char *)req) + 4, _BRlen << 2); \ | |||
+ memmove(((char *)req) + 8, ((char *)req) + 4, (_BRlen - 1) << 2); \ | |||
((CARD32 *)req)[1] = _BRlen + n + 2; \ | |||
Data32(dpy, &_BRdat, 4); \ | |||
} | |||
#endif | |||
#endif | |||
+/* | |||
+ * SetReqLen increases the count of 32-bit words in the request by "n", | |||
+ * or by "badlen" if "n" is too large. | |||
+ * | |||
+ * Do not use SetReqLen if "req" does not already have data after the | |||
+ * xReq header. req->length must already be >= 2. | |||
+ */ | |||
#ifndef __clang_analyzer__ | |||
#define SetReqLen(req,n,badlen) \ | |||
if ((req->length + n) > (unsigned)65535) { \ | |||
cgit v0.10.2 | |||
@@ -1,240 +0,0 @@ | |||
From 81c90dc8f0aae3b65730409b1b615b5fa7280ebd Mon Sep 17 00:00:00 2001 | |||
From: Olivier Fourdan <ofourdan@redhat.com> | |||
Date: Fri, 16 Jan 2015 20:08:59 +0100 | |||
Subject: xkb: Don't swap XkbSetGeometry data in the input buffer | |||
The XkbSetGeometry request embeds data which needs to be swapped when the | |||
server and the client have different endianess. | |||
_XkbSetGeometry() invokes functions that swap these data directly in the | |||
input buffer. | |||
However, ProcXkbSetGeometry() may call _XkbSetGeometry() more than once | |||
(if there is more than one keyboard), thus causing on swapped clients the | |||
same data to be swapped twice in memory, further causing a server crash | |||
because the strings lengths on the second time are way off bounds. | |||
To allow _XkbSetGeometry() to run reliably more than once with swapped | |||
clients, do not swap the data in the buffer, use variables instead. | |||
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> | |||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> | |||
diff --git a/xkb/xkb.c b/xkb/xkb.c | |||
index 15c7f34..b9a3ac4 100644 | |||
--- a/xkb/xkb.c | |||
+++ b/xkb/xkb.c | |||
@@ -4961,14 +4961,13 @@ static char * | |||
_GetCountedString(char **wire_inout, Bool swap) | |||
{ | |||
char *wire, *str; | |||
- CARD16 len, *plen; | |||
+ CARD16 len; | |||
wire = *wire_inout; | |||
- plen = (CARD16 *) wire; | |||
+ len = *(CARD16 *) wire; | |||
if (swap) { | |||
- swaps(plen); | |||
+ swaps(&len); | |||
} | |||
- len = *plen; | |||
str = malloc(len + 1); | |||
if (str) { | |||
memcpy(str, &wire[2], len); | |||
@@ -4985,25 +4984,28 @@ _CheckSetDoodad(char **wire_inout, | |||
{ | |||
char *wire; | |||
xkbDoodadWireDesc *dWire; | |||
+ xkbAnyDoodadWireDesc any; | |||
+ xkbTextDoodadWireDesc text; | |||
XkbDoodadPtr doodad; | |||
dWire = (xkbDoodadWireDesc *) (*wire_inout); | |||
+ any = dWire->any; | |||
wire = (char *) &dWire[1]; | |||
if (client->swapped) { | |||
- swapl(&dWire->any.name); | |||
- swaps(&dWire->any.top); | |||
- swaps(&dWire->any.left); | |||
- swaps(&dWire->any.angle); | |||
+ swapl(&any.name); | |||
+ swaps(&any.top); | |||
+ swaps(&any.left); | |||
+ swaps(&any.angle); | |||
} | |||
CHK_ATOM_ONLY(dWire->any.name); | |||
- doodad = XkbAddGeomDoodad(geom, section, dWire->any.name); | |||
+ doodad = XkbAddGeomDoodad(geom, section, any.name); | |||
if (!doodad) | |||
return BadAlloc; | |||
doodad->any.type = dWire->any.type; | |||
doodad->any.priority = dWire->any.priority; | |||
- doodad->any.top = dWire->any.top; | |||
- doodad->any.left = dWire->any.left; | |||
- doodad->any.angle = dWire->any.angle; | |||
+ doodad->any.top = any.top; | |||
+ doodad->any.left = any.left; | |||
+ doodad->any.angle = any.angle; | |||
switch (doodad->any.type) { | |||
case XkbOutlineDoodad: | |||
case XkbSolidDoodad: | |||
@@ -5026,12 +5028,13 @@ _CheckSetDoodad(char **wire_inout, | |||
dWire->text.colorNdx); | |||
return BadMatch; | |||
} | |||
+ text = dWire->text; | |||
if (client->swapped) { | |||
- swaps(&dWire->text.width); | |||
- swaps(&dWire->text.height); | |||
+ swaps(&text.width); | |||
+ swaps(&text.height); | |||
} | |||
- doodad->text.width = dWire->text.width; | |||
- doodad->text.height = dWire->text.height; | |||
+ doodad->text.width = text.width; | |||
+ doodad->text.height = text.height; | |||
doodad->text.color_ndx = dWire->text.colorNdx; | |||
doodad->text.text = _GetCountedString(&wire, client->swapped); | |||
doodad->text.font = _GetCountedString(&wire, client->swapped); | |||
cgit v0.10.2 | |||
From 20079c36cf7d377938ca5478447d8b9045cb7d43 Mon Sep 17 00:00:00 2001 | |||
From: Olivier Fourdan <ofourdan@redhat.com> | |||
Date: Fri, 16 Jan 2015 08:44:45 +0100 | |||
Subject: xkb: Check strings length against request size | |||
Ensure that the given strings length in an XkbSetGeometry request remain | |||
within the limits of the size of the request. | |||
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> | |||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> | |||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> | |||
diff --git a/xkb/xkb.c b/xkb/xkb.c | |||
index b9a3ac4..f3988f9 100644 | |||
--- a/xkb/xkb.c | |||
+++ b/xkb/xkb.c | |||
@@ -4957,25 +4957,29 @@ ProcXkbGetGeometry(ClientPtr client) | |||
/***====================================================================***/ | |||
-static char * | |||
-_GetCountedString(char **wire_inout, Bool swap) | |||
+static Status | |||
+_GetCountedString(char **wire_inout, ClientPtr client, char **str) | |||
{ | |||
- char *wire, *str; | |||
+ char *wire, *next; | |||
CARD16 len; | |||
wire = *wire_inout; | |||
len = *(CARD16 *) wire; | |||
- if (swap) { | |||
+ if (client->swapped) { | |||
swaps(&len); | |||
} | |||
- str = malloc(len + 1); | |||
- if (str) { | |||
- memcpy(str, &wire[2], len); | |||
- str[len] = '\0'; | |||
- } | |||
- wire += XkbPaddedSize(len + 2); | |||
- *wire_inout = wire; | |||
- return str; | |||
+ next = wire + XkbPaddedSize(len + 2); | |||
+ /* Check we're still within the size of the request */ | |||
+ if (client->req_len < | |||
+ bytes_to_int32(next - (char *) client->requestBuffer)) | |||
+ return BadValue; | |||
+ *str = malloc(len + 1); | |||
+ if (!*str) | |||
+ return BadAlloc; | |||
+ memcpy(*str, &wire[2], len); | |||
+ *(*str + len) = '\0'; | |||
+ *wire_inout = next; | |||
+ return Success; | |||
} | |||
static Status | |||
@@ -4987,6 +4991,7 @@ _CheckSetDoodad(char **wire_inout, | |||
xkbAnyDoodadWireDesc any; | |||
xkbTextDoodadWireDesc text; | |||
XkbDoodadPtr doodad; | |||
+ Status status; | |||
dWire = (xkbDoodadWireDesc *) (*wire_inout); | |||
any = dWire->any; | |||
@@ -5036,8 +5041,14 @@ _CheckSetDoodad(char **wire_inout, | |||
doodad->text.width = text.width; | |||
doodad->text.height = text.height; | |||
doodad->text.color_ndx = dWire->text.colorNdx; | |||
- doodad->text.text = _GetCountedString(&wire, client->swapped); | |||
- doodad->text.font = _GetCountedString(&wire, client->swapped); | |||
+ status = _GetCountedString(&wire, client, &doodad->text.text); | |||
+ if (status != Success) | |||
+ return status; | |||
+ status = _GetCountedString(&wire, client, &doodad->text.font); | |||
+ if (status != Success) { | |||
+ free (doodad->text.text); | |||
+ return status; | |||
+ } | |||
break; | |||
case XkbIndicatorDoodad: | |||
if (dWire->indicator.onColorNdx >= geom->num_colors) { | |||
@@ -5072,7 +5083,9 @@ _CheckSetDoodad(char **wire_inout, | |||
} | |||
doodad->logo.color_ndx = dWire->logo.colorNdx; | |||
doodad->logo.shape_ndx = dWire->logo.shapeNdx; | |||
- doodad->logo.logo_name = _GetCountedString(&wire, client->swapped); | |||
+ status = _GetCountedString(&wire, client, &doodad->logo.logo_name); | |||
+ if (status != Success) | |||
+ return status; | |||
break; | |||
default: | |||
client->errorValue = _XkbErrCode2(0x4F, dWire->any.type); | |||
@@ -5304,18 +5317,20 @@ _CheckSetGeom(XkbGeometryPtr geom, xkbSetGeometryReq * req, ClientPtr client) | |||
char *wire; | |||
wire = (char *) &req[1]; | |||
- geom->label_font = _GetCountedString(&wire, client->swapped); | |||
+ status = _GetCountedString(&wire, client, &geom->label_font); | |||
+ if (status != Success) | |||
+ return status; | |||
for (i = 0; i < req->nProperties; i++) { | |||
char *name, *val; | |||
- name = _GetCountedString(&wire, client->swapped); | |||
- if (!name) | |||
- return BadAlloc; | |||
- val = _GetCountedString(&wire, client->swapped); | |||
- if (!val) { | |||
+ status = _GetCountedString(&wire, client, &name); | |||
+ if (status != Success) | |||
+ return status; | |||
+ status = _GetCountedString(&wire, client, &val); | |||
+ if (status != Success) { | |||
free(name); | |||
- return BadAlloc; | |||
+ return status; | |||
} | |||
if (XkbAddGeomProperty(geom, name, val) == NULL) { | |||
free(name); | |||
@@ -5349,9 +5364,9 @@ _CheckSetGeom(XkbGeometryPtr geom, xkbSetGeometryReq * req, ClientPtr client) | |||
for (i = 0; i < req->nColors; i++) { | |||
char *name; | |||
- name = _GetCountedString(&wire, client->swapped); | |||
- if (!name) | |||
- return BadAlloc; | |||
+ status = _GetCountedString(&wire, client, &name); | |||
+ if (status != Success) | |||
+ return status; | |||
if (!XkbAddGeomColor(geom, name, geom->num_colors)) { | |||
free(name); | |||
return BadAlloc; | |||
cgit v0.10.2 | |||
@@ -1,30 +0,0 @@ | |||
From 2deda9906480f9c8ae07b8c2a5510cc7e4c59a8e Mon Sep 17 00:00:00 2001 | |||
From: Alan Coopersmith <alan.coopersmith@oracle.com> | |||
Date: Fri, 6 Feb 2015 15:50:45 -0800 | |||
Subject: bdfReadProperties: property count needs range check [CVE-2015-1802] | |||
Avoid integer overflow or underflow when allocating memory arrays | |||
by multiplying the number of properties reported for a BDF font. | |||
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com> | |||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> | |||
Reviewed-by: Julien Cristau <jcristau@debian.org> | |||
diff --git a/src/bitmap/bdfread.c b/src/bitmap/bdfread.c | |||
index 914a024..6387908 100644 | |||
--- a/src/bitmap/bdfread.c | |||
+++ b/src/bitmap/bdfread.c | |||
@@ -604,7 +604,9 @@ bdfReadProperties(FontFilePtr file, FontPtr pFont, bdfFileState *pState) | |||
bdfError("missing 'STARTPROPERTIES'\n"); | |||
return (FALSE); | |||
} | |||
- if (sscanf((char *) line, "STARTPROPERTIES %d", &nProps) != 1) { | |||
+ if ((sscanf((char *) line, "STARTPROPERTIES %d", &nProps) != 1) || | |||
+ (nProps <= 0) || | |||
+ (nProps > ((INT32_MAX / sizeof(FontPropRec)) - BDF_GENPROPS))) { | |||
bdfError("bad 'STARTPROPERTIES'\n"); | |||
return (FALSE); | |||
} | |||
cgit v0.10.2 | |||
@@ -1,33 +0,0 @@ | |||
From 78c2e3d70d29698244f70164428bd2868c0ab34c Mon Sep 17 00:00:00 2001 | |||
From: Alan Coopersmith <alan.coopersmith@oracle.com> | |||
Date: Fri, 6 Feb 2015 15:54:00 -0800 | |||
Subject: bdfReadCharacters: bailout if a char's bitmap cannot be read | |||
[CVE-2015-1803] | |||
Previously would charge on ahead with a NULL pointer in ci->bits, and | |||
then crash later in FontCharInkMetrics() trying to access the bits. | |||
Found with afl-1.23b. | |||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> | |||
Reviewed-by: Julien Cristau <jcristau@debian.org> | |||
diff --git a/src/bitmap/bdfread.c b/src/bitmap/bdfread.c | |||
index 6387908..1b29b81 100644 | |||
--- a/src/bitmap/bdfread.c | |||
+++ b/src/bitmap/bdfread.c | |||
@@ -458,7 +458,10 @@ bdfReadCharacters(FontFilePtr file, FontPtr pFont, bdfFileState *pState, | |||
ci->metrics.descent = -bb; | |||
ci->metrics.characterWidth = wx; | |||
ci->bits = NULL; | |||
- bdfReadBitmap(ci, file, bit, byte, glyph, scan, bitmapsSizes); | |||
+ if (!bdfReadBitmap(ci, file, bit, byte, glyph, scan, bitmapsSizes)) { | |||
+ bdfError("could not read bitmap for character '%s'\n", charName); | |||
+ goto BAILOUT; | |||
+ } | |||
ci++; | |||
ndx++; | |||
} else | |||
cgit v0.10.2 | |||
@@ -1,73 +0,0 @@ | |||
From 2351c83a77a478b49cba6beb2ad386835e264744 Mon Sep 17 00:00:00 2001 | |||
From: Alan Coopersmith <alan.coopersmith@oracle.com> | |||
Date: Fri, 6 Mar 2015 22:54:58 -0800 | |||
Subject: bdfReadCharacters: ensure metrics fit into xCharInfo struct | |||
[CVE-2015-1804] | |||
We use 32-bit ints to read from the bdf file, but then try to stick | |||
into a 16-bit int in the xCharInfo struct, so make sure they won't | |||
overflow that range. | |||
Found by afl-1.24b. | |||
v2: Verify that additions won't overflow 32-bit int range either. | |||
v3: As Julien correctly observes, the previous check for bh & bw not | |||
being < 0 reduces the number of cases we need to check for overflow. | |||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> | |||
Reviewed-by: Julien Cristau <jcristau@debian.org> | |||
diff --git a/src/bitmap/bdfread.c b/src/bitmap/bdfread.c | |||
index 1b29b81..a0ace8f 100644 | |||
--- a/src/bitmap/bdfread.c | |||
+++ b/src/bitmap/bdfread.c | |||
@@ -62,8 +62,16 @@ from The Open Group. | |||
#if HAVE_STDINT_H | |||
#include <stdint.h> | |||
-#elif !defined(INT32_MAX) | |||
-#define INT32_MAX 0x7fffffff | |||
+#else | |||
+# ifndef INT32_MAX | |||
+# define INT32_MAX 0x7fffffff | |||
+# endif | |||
+# ifndef INT16_MAX | |||
+# define INT16_MAX 0x7fff | |||
+# endif | |||
+# ifndef INT16_MIN | |||
+# define INT16_MIN (0 - 0x8000) | |||
+# endif | |||
#endif | |||
#define INDICES 256 | |||
@@ -417,6 +425,12 @@ bdfReadCharacters(FontFilePtr file, FontPtr pFont, bdfFileState *pState, | |||
bdfError("DWIDTH y value must be zero\n"); | |||
goto BAILOUT; | |||
} | |||
+ /* xCharInfo metrics are stored as INT16 */ | |||
+ if ((wx < 0) || (wx > INT16_MAX)) { | |||
+ bdfError("character '%s' has out of range width, %d\n", | |||
+ charName, wx); | |||
+ goto BAILOUT; | |||
+ } | |||
line = bdfGetLine(file, lineBuf, BDFLINELEN); | |||
if ((!line) || (sscanf((char *) line, "BBX %d %d %d %d", &bw, &bh, &bl, &bb) != 4)) { | |||
bdfError("bad 'BBX'\n"); | |||
@@ -427,6 +441,14 @@ bdfReadCharacters(FontFilePtr file, FontPtr pFont, bdfFileState *pState, | |||
charName, bw, bh); | |||
goto BAILOUT; | |||
} | |||
+ /* xCharInfo metrics are read as int, but stored as INT16 */ | |||
+ if ((bl > INT16_MAX) || (bl < INT16_MIN) || | |||
+ (bb > INT16_MAX) || (bb < INT16_MIN) || | |||
+ (bw > (INT16_MAX - bl)) || (bh > (INT16_MAX - bb))) { | |||
+ bdfError("character '%s' has out of range metrics, %d %d %d %d\n", | |||
+ charName, bl, (bl+bw), (bh+bb), -bb); | |||
+ goto BAILOUT; | |||
+ } | |||
line = bdfGetLine(file, lineBuf, BDFLINELEN); | |||
if ((line) && (bdfIsPrefix(line, "ATTRIBUTES"))) { | |||
for (p = line + strlen("ATTRIBUTES "); | |||
cgit v0.10.2 | |||
@@ -1,511 +0,0 @@ | |||
# - Find X11 installation | |||
# Try to find X11 on UNIX systems. The following values are defined | |||
# X11_FOUND - True if X11 is available | |||
# X11_INCLUDE_DIR - include directories to use X11 | |||
# X11_LIBRARIES - link against these to use X11 | |||
# | |||
# and also the following more fine grained variables: | |||
# Include paths: X11_ICE_INCLUDE_PATH, X11_ICE_LIB, X11_ICE_FOUND | |||
# X11_SM_INCLUDE_PATH, X11_SM_LIB, X11_SM_FOUND | |||
# X11_X11_INCLUDE_PATH, X11_X11_LIB | |||
# X11_Xaccessrules_INCLUDE_PATH, X11_Xaccess_FOUND | |||
# X11_Xaccessstr_INCLUDE_PATH, X11_Xaccess_FOUND | |||
# X11_Xau_INCLUDE_PATH, X11_Xau_LIB, X11_Xau_FOUND | |||
# X11_Xcomposite_INCLUDE_PATH, X11_Xcomposite_LIB, X11_Xcomposite_FOUND | |||
# X11_Xcursor_INCLUDE_PATH, X11_Xcursor_LIB, X11_Xcursor_FOUND | |||
# X11_Xdamage_INCLUDE_PATH, X11_Xdamage_LIB, X11_Xdamage_FOUND | |||
# X11_Xdmcp_INCLUDE_PATH, X11_Xdmcp_LIB, X11_Xdmcp_FOUND | |||
# X11_Xext_LIB, X11_Xext_FOUND | |||
# X11_dpms_INCLUDE_PATH, (in X11_Xext_LIB), X11_dpms_FOUND | |||
# X11_XShm_INCLUDE_PATH, (in X11_Xext_LIB), X11_XShm_FOUND | |||
# X11_Xshape_INCLUDE_PATH, (in X11_Xext_LIB), X11_Xshape_FOUND | |||
# X11_xf86misc_INCLUDE_PATH, X11_Xxf86misc_LIB, X11_xf86misc_FOUND | |||
# X11_xf86vmode_INCLUDE_PATH, X11_Xxf86vm_LIB X11_xf86vmode_FOUND | |||
# X11_Xfixes_INCLUDE_PATH, X11_Xfixes_LIB, X11_Xfixes_FOUND | |||
# X11_Xft_INCLUDE_PATH, X11_Xft_LIB, X11_Xft_FOUND | |||
# X11_Xi_INCLUDE_PATH, X11_Xi_LIB, X11_Xi_FOUND | |||
# X11_Xinerama_INCLUDE_PATH, X11_Xinerama_LIB, X11_Xinerama_FOUND | |||
# X11_Xinput_INCLUDE_PATH, X11_Xinput_LIB, X11_Xinput_FOUND | |||
# X11_Xkb_INCLUDE_PATH, X11_Xkb_FOUND | |||
# X11_Xkblib_INCLUDE_PATH, X11_Xkb_FOUND | |||
# X11_Xkbfile_INCLUDE_PATH, X11_Xkbfile_LIB, X11_Xkbfile_FOUND | |||
# X11_Xmu_INCLUDE_PATH, X11_Xmu_LIB, X11_Xmu_FOUND | |||
# X11_Xpm_INCLUDE_PATH, X11_Xpm_LIB, X11_Xpm_FOUND | |||
# X11_XTest_INCLUDE_PATH, X11_XTest_LIB, X11_XTest_FOUND | |||
# X11_Xrandr_INCLUDE_PATH, X11_Xrandr_LIB, X11_Xrandr_FOUND | |||
# X11_Xrender_INCLUDE_PATH, X11_Xrender_LIB, X11_Xrender_FOUND | |||
# X11_Xscreensaver_INCLUDE_PATH, X11_Xscreensaver_LIB, X11_Xscreensaver_FOUND | |||
# X11_Xt_INCLUDE_PATH, X11_Xt_LIB, X11_Xt_FOUND | |||
# X11_Xutil_INCLUDE_PATH, X11_Xutil_FOUND | |||
# X11_Xv_INCLUDE_PATH, X11_Xv_LIB, X11_Xv_FOUND | |||
# X11_XSync_INCLUDE_PATH, (in X11_Xext_LIB), X11_XSync_FOUND | |||
#============================================================================= | |||
# Copyright 2001-2009 Kitware, Inc. | |||
# | |||
# Distributed under the OSI-approved BSD License (the "License"); | |||
# see accompanying file Copyright.txt for details. | |||
# | |||
# This software is distributed WITHOUT ANY WARRANTY; without even the | |||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |||
# See the License for more information. | |||
#============================================================================= | |||
# (To distribute this file outside of CMake, substitute the full | |||
# License text for the above reference.) | |||
if (UNIX) | |||
set(X11_FOUND 0) | |||
# X11 is never a framework and some header files may be | |||
# found in tcl on the mac | |||
set(CMAKE_FIND_FRAMEWORK_SAVE ${CMAKE_FIND_FRAMEWORK}) | |||
set(CMAKE_FIND_FRAMEWORK NEVER) | |||
set(X11_INC_SEARCH_PATH | |||
@_includedir@ | |||
/usr/pkg/xorg/include | |||
/usr/X11R6/include | |||
/usr/X11R7/include | |||
/usr/include/X11 | |||
/usr/openwin/include | |||
/usr/openwin/share/include | |||
/opt/graphics/OpenGL/include | |||
) | |||
set(X11_LIB_SEARCH_PATH | |||
@_libdir@ | |||
@_libdir@/tigervnc | |||
/usr/pkg/xorg/lib | |||
/usr/X11R6/lib | |||
/usr/X11R7/lib | |||
/usr/openwin/lib | |||
) | |||
find_path(X11_X11_INCLUDE_PATH X11/X.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xlib_INCLUDE_PATH X11/Xlib.h ${X11_INC_SEARCH_PATH}) | |||
# Look for includes; keep the list sorted by name of the cmake *_INCLUDE_PATH | |||
# variable (which doesn't need to match the include file name). | |||
# Solaris lacks XKBrules.h, so we should skip kxkbd there. | |||
find_path(X11_ICE_INCLUDE_PATH X11/ICE/ICE.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_SM_INCLUDE_PATH X11/SM/SM.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xaccessrules_INCLUDE_PATH X11/extensions/XKBrules.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xaccessstr_INCLUDE_PATH X11/extensions/XKBstr.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xau_INCLUDE_PATH X11/Xauth.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xcomposite_INCLUDE_PATH X11/extensions/Xcomposite.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xcursor_INCLUDE_PATH X11/Xcursor/Xcursor.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xdamage_INCLUDE_PATH X11/extensions/Xdamage.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xdmcp_INCLUDE_PATH X11/Xdmcp.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_dpms_INCLUDE_PATH X11/extensions/dpms.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_xf86misc_INCLUDE_PATH X11/extensions/xf86misc.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_xf86vmode_INCLUDE_PATH X11/extensions/xf86vmode.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xfixes_INCLUDE_PATH X11/extensions/Xfixes.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xft_INCLUDE_PATH X11/Xft/Xft.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xi_INCLUDE_PATH X11/extensions/XInput.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xinerama_INCLUDE_PATH X11/extensions/Xinerama.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xinput_INCLUDE_PATH X11/extensions/XInput.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xkb_INCLUDE_PATH X11/extensions/XKB.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xkblib_INCLUDE_PATH X11/XKBlib.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xkbfile_INCLUDE_PATH X11/extensions/XKBfile.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xmu_INCLUDE_PATH X11/Xmu/Xmu.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xpm_INCLUDE_PATH X11/xpm.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_XTest_INCLUDE_PATH X11/extensions/XTest.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_XShm_INCLUDE_PATH X11/extensions/XShm.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xrandr_INCLUDE_PATH X11/extensions/Xrandr.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xrender_INCLUDE_PATH X11/extensions/Xrender.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_XRes_INCLUDE_PATH X11/extensions/XRes.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xscreensaver_INCLUDE_PATH X11/extensions/scrnsaver.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xshape_INCLUDE_PATH X11/extensions/shape.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xutil_INCLUDE_PATH X11/Xutil.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xt_INCLUDE_PATH X11/Intrinsic.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_Xv_INCLUDE_PATH X11/extensions/Xvlib.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_XSync_INCLUDE_PATH X11/extensions/sync.h ${X11_INC_SEARCH_PATH}) | |||
find_path(X11_xcb_INCLUDE_PATH X11/xcb.h ${X11_INC_SEARCH_PATH}) | |||
find_library(X11_X11_LIB X11 ${X11_LIB_SEARCH_PATH}) | |||
# Find additional X libraries. Keep list sorted by library name. | |||
find_library(X11_ICE_LIB ICE ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_SM_LIB SM ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xau_LIB Xau ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xcomposite_LIB Xcomposite ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xcursor_LIB Xcursor ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xdamage_LIB Xdamage ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xdmcp_LIB Xdmcp ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xext_LIB Xext ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xfixes_LIB Xfixes ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xft_LIB Xft ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xi_LIB Xi ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xinerama_LIB Xinerama ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xinput_LIB Xi ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xkbfile_LIB xkbfile ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xmu_LIB Xmu ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xpm_LIB Xpm ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xrandr_LIB Xrandr ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xrender_LIB Xrender ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_XRes_LIB XRes ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xscreensaver_LIB Xss ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xt_LIB Xt ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_XTest_LIB Xtst ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xv_LIB Xv ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xxf86misc_LIB Xxf86misc ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_Xxf86vm_LIB Xxf86vm ${X11_LIB_SEARCH_PATH}) | |||
find_library(X11_xcb_LIB xcb ${X11_LIB_SEARCH_PATH}) | |||
set(X11_LIBRARY_DIR "") | |||
if(X11_X11_LIB) | |||
get_filename_component(X11_LIBRARY_DIR ${X11_X11_LIB} PATH) | |||
endif() | |||
set(X11_INCLUDE_DIR) # start with empty list | |||
if(X11_X11_INCLUDE_PATH) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_X11_INCLUDE_PATH}) | |||
endif() | |||
if(X11_Xlib_INCLUDE_PATH) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xlib_INCLUDE_PATH}) | |||
endif() | |||
if(X11_Xutil_INCLUDE_PATH) | |||
set(X11_Xutil_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xutil_INCLUDE_PATH}) | |||
endif() | |||
if(X11_Xshape_INCLUDE_PATH) | |||
set(X11_Xshape_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xshape_INCLUDE_PATH}) | |||
endif() | |||
set(X11_LIBRARIES) # start with empty list | |||
if(X11_X11_LIB) | |||
set(X11_LIBRARIES ${X11_LIBRARIES} ${X11_X11_LIB} ${X11_xcb_LIB}) | |||
endif() | |||
if(X11_Xext_LIB) | |||
set(X11_Xext_FOUND TRUE) | |||
set(X11_LIBRARIES ${X11_LIBRARIES} ${X11_Xext_LIB}) | |||
endif() | |||
if(X11_Xt_LIB AND X11_Xt_INCLUDE_PATH) | |||
set(X11_Xt_FOUND TRUE) | |||
endif() | |||
if(X11_Xft_LIB AND X11_Xft_INCLUDE_PATH) | |||
set(X11_Xft_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xft_INCLUDE_PATH}) | |||
endif() | |||
if(X11_Xv_LIB AND X11_Xv_INCLUDE_PATH) | |||
set(X11_Xv_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xv_INCLUDE_PATH}) | |||
endif() | |||
if (X11_Xau_LIB AND X11_Xau_INCLUDE_PATH) | |||
set(X11_Xau_FOUND TRUE) | |||
set(X11_LIBRARIES ${X11_LIBRARIES} ${X11_Xau_LIB}) | |||
endif () | |||
if (X11_Xdmcp_INCLUDE_PATH AND X11_Xdmcp_LIB) | |||
set(X11_Xdmcp_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xdmcp_INCLUDE_PATH}) | |||
set(X11_LIBRARIES ${X11_LIBRARIES} ${X11_Xdmcp_LIB}) | |||
endif () | |||
if (X11_Xaccessrules_INCLUDE_PATH AND X11_Xaccessstr_INCLUDE_PATH) | |||
set(X11_Xaccess_FOUND TRUE) | |||
set(X11_Xaccess_INCLUDE_PATH ${X11_Xaccessstr_INCLUDE_PATH}) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xaccess_INCLUDE_PATH}) | |||
endif () | |||
if (X11_Xpm_INCLUDE_PATH AND X11_Xpm_LIB) | |||
set(X11_Xpm_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xpm_INCLUDE_PATH}) | |||
endif () | |||
if (X11_Xcomposite_INCLUDE_PATH AND X11_Xcomposite_LIB) | |||
set(X11_Xcomposite_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xcomposite_INCLUDE_PATH}) | |||
endif () | |||
if (X11_Xdamage_INCLUDE_PATH AND X11_Xdamage_LIB) | |||
set(X11_Xdamage_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xdamage_INCLUDE_PATH}) | |||
endif () | |||
if (X11_XShm_INCLUDE_PATH) | |||
set(X11_XShm_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_XShm_INCLUDE_PATH}) | |||
endif () | |||
if (X11_XTest_INCLUDE_PATH AND X11_XTest_LIB) | |||
set(X11_XTest_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_XTest_INCLUDE_PATH}) | |||
endif () | |||
if (X11_Xi_INCLUDE_PATH AND X11_Xi_LIB) | |||
set(X11_Xi_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xi_INCLUDE_PATH}) | |||
endif () | |||
if (X11_Xinerama_INCLUDE_PATH AND X11_Xinerama_LIB) | |||
set(X11_Xinerama_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xinerama_INCLUDE_PATH}) | |||
endif () | |||
if (X11_Xfixes_INCLUDE_PATH AND X11_Xfixes_LIB) | |||
set(X11_Xfixes_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xfixes_INCLUDE_PATH}) | |||
endif () | |||
if (X11_Xrender_INCLUDE_PATH AND X11_Xrender_LIB) | |||
set(X11_Xrender_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xrender_INCLUDE_PATH}) | |||
endif () | |||
if (X11_XRes_INCLUDE_PATH AND X11_XRes_LIB) | |||
set(X11_XRes_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_XRes_INCLUDE_PATH}) | |||
endif () | |||
if (X11_Xrandr_INCLUDE_PATH AND X11_Xrandr_LIB) | |||
set(X11_Xrandr_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xrandr_INCLUDE_PATH}) | |||
endif () | |||
if (X11_xf86misc_INCLUDE_PATH AND X11_Xxf86misc_LIB) | |||
set(X11_xf86misc_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_xf86misc_INCLUDE_PATH}) | |||
endif () | |||
if (X11_xf86vmode_INCLUDE_PATH AND X11_Xxf86vm_LIB) | |||
set(X11_xf86vmode_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_xf86vmode_INCLUDE_PATH}) | |||
endif () | |||
if (X11_Xcursor_INCLUDE_PATH AND X11_Xcursor_LIB) | |||
set(X11_Xcursor_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xcursor_INCLUDE_PATH}) | |||
endif () | |||
if (X11_Xscreensaver_INCLUDE_PATH AND X11_Xscreensaver_LIB) | |||
set(X11_Xscreensaver_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xscreensaver_INCLUDE_PATH}) | |||
endif () | |||
if (X11_dpms_INCLUDE_PATH) | |||
set(X11_dpms_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_dpms_INCLUDE_PATH}) | |||
endif () | |||
if (X11_Xkb_INCLUDE_PATH AND X11_Xkblib_INCLUDE_PATH AND X11_Xlib_INCLUDE_PATH) | |||
set(X11_Xkb_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xkb_INCLUDE_PATH} ) | |||
endif () | |||
if (X11_Xkbfile_INCLUDE_PATH AND X11_Xkbfile_LIB AND X11_Xlib_INCLUDE_PATH) | |||
set(X11_Xkbfile_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xkbfile_INCLUDE_PATH} ) | |||
endif () | |||
if (X11_Xmu_INCLUDE_PATH AND X11_Xmu_LIB) | |||
set(X11_Xmu_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xmu_INCLUDE_PATH}) | |||
endif () | |||
if (X11_Xinput_INCLUDE_PATH AND X11_Xinput_LIB) | |||
set(X11_Xinput_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_Xinput_INCLUDE_PATH}) | |||
endif () | |||
if (X11_XSync_INCLUDE_PATH) | |||
set(X11_XSync_FOUND TRUE) | |||
set(X11_INCLUDE_DIR ${X11_INCLUDE_DIR} ${X11_XSync_INCLUDE_PATH}) | |||
endif () | |||
if(X11_ICE_LIB AND X11_ICE_INCLUDE_PATH) | |||
set(X11_ICE_FOUND TRUE) | |||
endif() | |||
if(X11_SM_LIB AND X11_SM_INCLUDE_PATH) | |||
set(X11_SM_FOUND TRUE) | |||
endif() | |||
if(X11_xcb_LIB AND X11_xcb_INCLUDE_PATH) | |||
set(X11_xcb_FOUND TRUE) | |||
endif() | |||
# Most of the X11 headers will be in the same directories, avoid | |||
# creating a huge list of duplicates. | |||
if (X11_INCLUDE_DIR) | |||
list(REMOVE_DUPLICATES X11_INCLUDE_DIR) | |||
endif () | |||
# Deprecated variable for backwards compatibility with CMake 1.4 | |||
if (X11_X11_INCLUDE_PATH AND X11_LIBRARIES) | |||
set(X11_FOUND 1) | |||
endif () | |||
if(X11_FOUND) | |||
include(/usr/share/cmake28/Modules/CheckFunctionExists.cmake) | |||
include(/usr/share/cmake28/Modules/CheckLibraryExists.cmake) | |||
# Translated from an autoconf-generated configure script. | |||
# See libs.m4 in autoconf's m4 directory. | |||
if($ENV{ISC} MATCHES "^yes$") | |||
set(X11_X_EXTRA_LIBS -lnsl_s -linet) | |||
else() | |||
set(X11_X_EXTRA_LIBS "-Wl,-Bdynamic -ldl") | |||
# See if XOpenDisplay in X11 works by itself. | |||
CHECK_LIBRARY_EXISTS("${X11_LIBRARIES}" "XOpenDisplay" "${X11_LIBRARY_DIR}" X11_LIB_X11_SOLO) | |||
if(NOT X11_LIB_X11_SOLO) | |||
# Find library needed for dnet_ntoa. | |||
CHECK_LIBRARY_EXISTS("dnet" "dnet_ntoa" "" X11_LIB_DNET_HAS_DNET_NTOA) | |||
if (X11_LIB_DNET_HAS_DNET_NTOA) | |||
set (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -ldnet) | |||
else () | |||
CHECK_LIBRARY_EXISTS("dnet_stub" "dnet_ntoa" "" X11_LIB_DNET_STUB_HAS_DNET_NTOA) | |||
if (X11_LIB_DNET_STUB_HAS_DNET_NTOA) | |||
set (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -ldnet_stub) | |||
endif () | |||
endif () | |||
endif() | |||
# Find library needed for gethostbyname. | |||
CHECK_FUNCTION_EXISTS("gethostbyname" CMAKE_HAVE_GETHOSTBYNAME) | |||
if(NOT CMAKE_HAVE_GETHOSTBYNAME) | |||
CHECK_LIBRARY_EXISTS("nsl" "gethostbyname" "" CMAKE_LIB_NSL_HAS_GETHOSTBYNAME) | |||
if (CMAKE_LIB_NSL_HAS_GETHOSTBYNAME) | |||
set (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -lnsl) | |||
else () | |||
CHECK_LIBRARY_EXISTS("bsd" "gethostbyname" "" CMAKE_LIB_BSD_HAS_GETHOSTBYNAME) | |||
if (CMAKE_LIB_BSD_HAS_GETHOSTBYNAME) | |||
set (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -lbsd) | |||
endif () | |||
endif () | |||
endif() | |||
# Find library needed for connect. | |||
CHECK_FUNCTION_EXISTS("connect" CMAKE_HAVE_CONNECT) | |||
if(NOT CMAKE_HAVE_CONNECT) | |||
CHECK_LIBRARY_EXISTS("socket" "connect" "" CMAKE_LIB_SOCKET_HAS_CONNECT) | |||
if (CMAKE_LIB_SOCKET_HAS_CONNECT) | |||
set (X11_X_EXTRA_LIBS -lsocket ${X11_X_EXTRA_LIBS}) | |||
endif () | |||
endif() | |||
# Find library needed for remove. | |||
CHECK_FUNCTION_EXISTS("remove" CMAKE_HAVE_REMOVE) | |||
if(NOT CMAKE_HAVE_REMOVE) | |||
CHECK_LIBRARY_EXISTS("posix" "remove" "" CMAKE_LIB_POSIX_HAS_REMOVE) | |||
if (CMAKE_LIB_POSIX_HAS_REMOVE) | |||
set (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -lposix) | |||
endif () | |||
endif() | |||
# Find library needed for shmat. | |||
CHECK_FUNCTION_EXISTS("shmat" CMAKE_HAVE_SHMAT) | |||
if(NOT CMAKE_HAVE_SHMAT) | |||
CHECK_LIBRARY_EXISTS("ipc" "shmat" "" CMAKE_LIB_IPS_HAS_SHMAT) | |||
if (CMAKE_LIB_IPS_HAS_SHMAT) | |||
set (X11_X_EXTRA_LIBS ${X11_X_EXTRA_LIBS} -lipc) | |||
endif () | |||
endif() | |||
endif() | |||
if (X11_ICE_FOUND) | |||
CHECK_LIBRARY_EXISTS("ICE" "IceConnectionNumber" "${X11_LIBRARY_DIR}" | |||
CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER) | |||
if(CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER) | |||
set (X11_X_PRE_LIBS ${X11_ICE_LIB}) | |||
if(X11_SM_LIB) | |||
set (X11_X_PRE_LIBS ${X11_SM_LIB} ${X11_X_PRE_LIBS}) | |||
endif() | |||
endif() | |||
endif () | |||
# Build the final list of libraries. | |||
set(X11_LIBRARIES ${X11_X_PRE_LIBS} ${X11_LIBRARIES} ${X11_X_EXTRA_LIBS}) | |||
include(/usr/share/cmake28/Modules/FindPackageMessage.cmake) | |||
FIND_PACKAGE_MESSAGE(X11 "Found X11: ${X11_X11_LIB}" | |||
"[${X11_X11_LIB}][${X11_INCLUDE_DIR}]") | |||
else () | |||
if (X11_FIND_REQUIRED) | |||
message(FATAL_ERROR "Could not find X11") | |||
endif () | |||
endif () | |||
mark_as_advanced( | |||
X11_X11_INCLUDE_PATH | |||
X11_X11_LIB | |||
X11_Xext_LIB | |||
X11_Xau_LIB | |||
X11_Xau_INCLUDE_PATH | |||
X11_Xlib_INCLUDE_PATH | |||
X11_Xutil_INCLUDE_PATH | |||
X11_Xcomposite_INCLUDE_PATH | |||
X11_Xcomposite_LIB | |||
X11_Xaccess_INCLUDE_PATH | |||
X11_Xfixes_LIB | |||
X11_Xfixes_INCLUDE_PATH | |||
X11_Xrandr_LIB | |||
X11_Xrandr_INCLUDE_PATH | |||
X11_Xdamage_LIB | |||
X11_Xdamage_INCLUDE_PATH | |||
X11_Xrender_LIB | |||
X11_Xrender_INCLUDE_PATH | |||
X11_XRes_LIB | |||
X11_XRes_INCLUDE_PATH | |||
X11_Xxf86misc_LIB | |||
X11_xf86misc_INCLUDE_PATH | |||
X11_Xxf86vm_LIB | |||
X11_xf86vmode_INCLUDE_PATH | |||
X11_Xi_LIB | |||
X11_Xi_INCLUDE_PATH | |||
X11_Xinerama_LIB | |||
X11_Xinerama_INCLUDE_PATH | |||
X11_XTest_LIB | |||
X11_XTest_INCLUDE_PATH | |||
X11_Xcursor_LIB | |||
X11_Xcursor_INCLUDE_PATH | |||
X11_dpms_INCLUDE_PATH | |||
X11_Xt_LIB | |||
X11_Xt_INCLUDE_PATH | |||
X11_Xdmcp_LIB | |||
X11_LIBRARIES | |||
X11_Xaccessrules_INCLUDE_PATH | |||
X11_Xaccessstr_INCLUDE_PATH | |||
X11_Xdmcp_INCLUDE_PATH | |||
X11_Xkb_INCLUDE_PATH | |||
X11_Xkblib_INCLUDE_PATH | |||
X11_Xkbfile_INCLUDE_PATH | |||
X11_Xkbfile_LIB | |||
X11_Xmu_INCLUDE_PATH | |||
X11_Xmu_LIB | |||
X11_Xscreensaver_INCLUDE_PATH | |||
X11_Xscreensaver_LIB | |||
X11_Xpm_INCLUDE_PATH | |||
X11_Xpm_LIB | |||
X11_Xinput_LIB | |||
X11_Xinput_INCLUDE_PATH | |||
X11_Xft_LIB | |||
X11_Xft_INCLUDE_PATH | |||
X11_Xshape_INCLUDE_PATH | |||
X11_Xv_LIB | |||
X11_Xv_INCLUDE_PATH | |||
X11_XShm_INCLUDE_PATH | |||
X11_ICE_LIB | |||
X11_ICE_INCLUDE_PATH | |||
X11_SM_LIB | |||
X11_SM_INCLUDE_PATH | |||
X11_xcb_LIB | |||
X11_xcb_INCLUDE_PATH | |||
X11_XSync_INCLUDE_PATH | |||
) | |||
set(CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_SAVE}) | |||
endif () | |||
# X11_FIND_REQUIRED_<component> could be checked too |
@@ -1,29 +0,0 @@ | |||
--- a/configure 2015-02-22 16:20:48.000000000 -0500 | |||
+++ b/configure 2015-02-22 16:21:52.000000000 -0500 | |||
@@ -6793,7 +6793,7 @@ | |||
# See if we find them without any special options. | |||
# Don't add to $LIBS permanently. | |||
ac_save_LIBS=$LIBS | |||
- LIBS="-lX11 $LIBS" | |||
+ LIBS="-lX11 -lfreetype -lexpat -lXext -lXrender -lxcb -lXdmcp -lXau -lz $LIBS" | |||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |||
/* end confdefs.h. */ | |||
#include <X11/Xlib.h> | |||
@@ -6935,7 +6935,7 @@ | |||
# Martyn Johnson says this is needed for Ultrix, if the X | |||
# libraries were built with DECnet support. And Karl Berry says | |||
# the Alpha needs dnet_stub (dnet does not exist). | |||
- ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" | |||
+ ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lfreetype -lexpat -lX11 -lXext -lXrender -lxcb -lXdmcp -lXau -lz" | |||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |||
/* end confdefs.h. */ | |||
@@ -7359,7 +7359,7 @@ | |||
$as_echo "$as_me: WARNING: Ignoring libraries \"$X_PRE_LIBS\" requested by configure." >&2;} | |||
fi | |||
- LIBS="$LIBS -lX11 $X_EXTRA_LIBS" | |||
+ LIBS="$LIBS -lfreetype -lexpat -lX11 -lXext -lXrender -lxcb -lXdmcp -lXau -lz $X_EXTRA_LIBS" | |||
CFLAGS="$CFLAGS $X_CFLAGS" | |||
CXXFLAGS="$CXXFLAGS $X_CFLAGS" | |||
LDFLAGS="$X_LIBS $LDFLAGS" |
@@ -1,11 +0,0 @@ | |||
--- freetype-2.1.10/include/freetype/config/ftoption.h.enable-ft2-bci 2005-10-12 13:50:40.000000000 -0400 | |||
+++ freetype-2.1.10/include/freetype/config/ftoption.h 2005-10-12 14:18:50.000000000 -0400 | |||
@@ -436,7 +436,7 @@ | |||
/* Do not #undef this macro here, since the build system might */ | |||
/* define it for certain configurations only. */ | |||
/* */ | |||
-/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ | |||
+#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER | |||
/*************************************************************************/ |
@@ -1,20 +0,0 @@ | |||
--- freetype-2.2.1/modules.cfg.orig 2006-07-07 21:01:09.000000000 -0400 | |||
+++ freetype-2.2.1/modules.cfg 2006-07-07 21:01:54.000000000 -0400 | |||
@@ -110,7 +110,7 @@ | |||
AUX_MODULES += cache | |||
# TrueType GX/AAT table validation. Needs ftgxval.c below. | |||
-# AUX_MODULES += gxvalid | |||
+AUX_MODULES += gxvalid | |||
# Support for streams compressed with gzip (files with suffix .gz). | |||
# | |||
@@ -124,7 +124,7 @@ | |||
# OpenType table validation. Needs ftotval.c below. | |||
# | |||
-# AUX_MODULES += otvalid | |||
+AUX_MODULES += otvalid | |||
# Auxiliary PostScript driver component to share common code. | |||
# |
@@ -1,11 +0,0 @@ | |||
--- freetype-2.3.0/include/freetype/config/ftoption.h.spf 2007-01-18 14:27:34.000000000 -0500 | |||
+++ freetype-2.3.0/include/freetype/config/ftoption.h 2007-01-18 14:27:48.000000000 -0500 | |||
@@ -92,7 +92,7 @@ | |||
/* This is done to allow FreeType clients to run unmodified, forcing */ | |||
/* them to display normal gray-level anti-aliased glyphs. */ | |||
/* */ | |||
-/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */ | |||
+#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING | |||
/*************************************************************************/ |
@@ -1,101 +0,0 @@ | |||
--- freetype-2.3.11/src/cff/cffgload.c.CVE-2010-1797-2 2009-09-10 17:52:21.000000000 +0200 | |||
+++ freetype-2.3.11/src/cff/cffgload.c 2010-08-11 13:39:32.000000000 +0200 | |||
@@ -2358,8 +2358,11 @@ | |||
return CFF_Err_Unimplemented_Feature; | |||
} | |||
- decoder->top = args; | |||
+ decoder->top = args; | |||
+ if ( decoder->top - stack >= CFF_MAX_OPERANDS ) | |||
+ goto Stack_Overflow; | |||
+ | |||
} /* general operator processing */ | |||
} /* while ip < limit */ | |||
@@ -2627,48 +2630,54 @@ | |||
/* now load the unscaled outline */ | |||
error = cff_get_glyph_data( face, glyph_index, | |||
&charstring, &charstring_len ); | |||
- if ( !error ) | |||
- { | |||
- error = cff_decoder_prepare( &decoder, size, glyph_index ); | |||
- if ( !error ) | |||
- { | |||
- error = cff_decoder_parse_charstrings( &decoder, | |||
- charstring, | |||
- charstring_len ); | |||
+ if ( error ) | |||
+ goto Glyph_Build_Finished; | |||
+ | |||
+ error = cff_decoder_prepare( &decoder, size, glyph_index ); | |||
+ if ( error ) | |||
+ goto Glyph_Build_Finished; | |||
- cff_free_glyph_data( face, &charstring, charstring_len ); | |||
+ error = cff_decoder_parse_charstrings( &decoder, | |||
+ charstring, | |||
+ charstring_len ); | |||
+ | |||
+ cff_free_glyph_data( face, &charstring, charstring_len ); | |||
+ | |||
+ if ( error ) | |||
+ goto Glyph_Build_Finished; | |||
#ifdef FT_CONFIG_OPTION_INCREMENTAL | |||
- /* Control data and length may not be available for incremental */ | |||
- /* fonts. */ | |||
- if ( face->root.internal->incremental_interface ) | |||
- { | |||
- glyph->root.control_data = 0; | |||
- glyph->root.control_len = 0; | |||
- } | |||
- else | |||
+ /* Control data and length may not be available for incremental */ | |||
+ /* fonts. */ | |||
+ if ( face->root.internal->incremental_interface ) | |||
+ { | |||
+ glyph->root.control_data = 0; | |||
+ glyph->root.control_len = 0; | |||
+ } | |||
+ else | |||
#endif /* FT_CONFIG_OPTION_INCREMENTAL */ | |||
- /* We set control_data and control_len if charstrings is loaded. */ | |||
- /* See how charstring loads at cff_index_access_element() in */ | |||
- /* cffload.c. */ | |||
- { | |||
- CFF_Index csindex = &cff->charstrings_index; | |||
+ /* We set control_data and control_len if charstrings is loaded. */ | |||
+ /* See how charstring loads at cff_index_access_element() in */ | |||
+ /* cffload.c. */ | |||
+ { | |||
+ CFF_Index csindex = &cff->charstrings_index; | |||
- if ( csindex->offsets ) | |||
- { | |||
- glyph->root.control_data = csindex->bytes + | |||
- csindex->offsets[glyph_index] - 1; | |||
- glyph->root.control_len = charstring_len; | |||
- } | |||
- } | |||
+ if ( csindex->offsets ) | |||
+ { | |||
+ glyph->root.control_data = csindex->bytes + | |||
+ csindex->offsets[glyph_index] - 1; | |||
+ glyph->root.control_len = charstring_len; | |||
} | |||
} | |||
- /* save new glyph tables */ | |||
- cff_builder_done( &decoder.builder ); | |||
+ Glyph_Build_Finished: | |||
+ /* save new glyph tables, if no error */ | |||
+ if ( !error ) | |||
+ cff_builder_done( &decoder.builder ); | |||
+ /* XXX: anything to do for broken glyph entry? */ | |||
} | |||
#ifdef FT_CONFIG_OPTION_INCREMENTAL |
@@ -1,35 +0,0 @@ | |||
--- freetype-2.3.11/src/pshinter/pshalgo.c 2009-07-03 15:28:24.000000000 +0200 | |||
+++ freetype-2.3.11/src/pshinter/pshalgo.c 2010-07-13 13:14:22.000000000 +0200 | |||
@@ -4,7 +4,8 @@ | |||
/* */ | |||
/* PostScript hinting algorithm (body). */ | |||
/* */ | |||
-/* Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by */ | |||
+/* Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 */ | |||
+/* by */ | |||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |||
/* */ | |||
/* This file is part of the FreeType project, and may only be used */ | |||
@@ -1690,7 +1691,10 @@ | |||
/* process secondary hints to `selected' points */ | |||
if ( num_masks > 1 && glyph->num_points > 0 ) | |||
{ | |||
- first = mask->end_point; | |||
+ /* the `endchar' op can reduce the number of points */ | |||
+ first = mask->end_point > glyph->num_points | |||
+ ? glyph->num_points | |||
+ : mask->end_point; | |||
mask++; | |||
for ( ; num_masks > 1; num_masks--, mask++ ) | |||
{ | |||
@@ -1698,7 +1702,9 @@ | |||
FT_Int count; | |||
- next = mask->end_point; | |||
+ next = mask->end_point > glyph->num_points | |||
+ ? glyph->num_points | |||
+ : mask->end_point; | |||
count = next - first; | |||
if ( count > 0 ) | |||
{ |
@@ -1,39 +0,0 @@ | |||
--- freetype-2.3.11/src/base/ftobjs.c 2009-09-02 08:42:41.000000000 +0200 | |||
+++ freetype-2.3.11/src/base/ftobjs.c 2010-07-12 16:39:13.000000000 +0200 | |||
@@ -1531,6 +1531,8 @@ | |||
len += rlen; | |||
else | |||
{ | |||
+ if ( pfb_lenpos + 3 > pfb_len + 2 ) | |||
+ goto Exit2; | |||
pfb_data[pfb_lenpos ] = (FT_Byte)( len ); | |||
pfb_data[pfb_lenpos + 1] = (FT_Byte)( len >> 8 ); | |||
pfb_data[pfb_lenpos + 2] = (FT_Byte)( len >> 16 ); | |||
@@ -1539,6 +1541,8 @@ | |||
if ( ( flags >> 8 ) == 5 ) /* End of font mark */ | |||
break; | |||
+ if ( pfb_pos + 6 > pfb_len + 2 ) | |||
+ goto Exit2; | |||
pfb_data[pfb_pos++] = 0x80; | |||
type = flags >> 8; | |||
@@ -1553,12 +1557,18 @@ | |||
} | |||
error = FT_Stream_Read( stream, (FT_Byte *)pfb_data + pfb_pos, rlen ); | |||
+ if ( error ) | |||
+ goto Exit2; | |||
pfb_pos += rlen; | |||
} | |||
+ if ( pfb_pos + 2 > pfb_len + 2 ) | |||
+ goto Exit2; | |||
pfb_data[pfb_pos++] = 0x80; | |||
pfb_data[pfb_pos++] = 3; | |||
+ if ( pfb_lenpos + 3 > pfb_len + 2 ) | |||
+ goto Exit2; | |||
pfb_data[pfb_lenpos ] = (FT_Byte)( len ); | |||
pfb_data[pfb_lenpos + 1] = (FT_Byte)( len >> 8 ); | |||
pfb_data[pfb_lenpos + 2] = (FT_Byte)( len >> 16 ); |
@@ -1,31 +0,0 @@ | |||
--- freetype-2.3.11/src/smooth/ftgrays.c 2009-07-31 18:45:19.000000000 +0200 | |||
+++ freetype-2.3.11/src/smooth/ftgrays.c 2010-07-13 10:26:58.000000000 +0200 | |||
@@ -1189,7 +1189,7 @@ | |||
/* first of all, compute the scanline offset */ | |||
p = (unsigned char*)map->buffer - y * map->pitch; | |||
if ( map->pitch >= 0 ) | |||
- p += ( map->rows - 1 ) * map->pitch; | |||
+ p += (unsigned)( ( map->rows - 1 ) * map->pitch ); | |||
for ( ; count > 0; count--, spans++ ) | |||
{ | |||
--- freetype-2.3.11/src/smooth/ftsmooth.c 2009-07-31 18:45:19.000000000 +0200 | |||
+++ freetype-2.3.11/src/smooth/ftsmooth.c 2010-07-13 10:26:58.000000000 +0200 | |||
@@ -4,7 +4,7 @@ | |||
/* */ | |||
/* Anti-aliasing renderer interface (body). */ | |||
/* */ | |||
-/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2009 by */ | |||
+/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2009, 2010 by */ | |||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |||
/* */ | |||
/* This file is part of the FreeType project, and may only be used, */ | |||
@@ -200,7 +200,7 @@ | |||
/* Required check is ( pitch * height < FT_ULONG_MAX ), */ | |||
/* but we care realistic cases only. Always pitch <= width. */ | |||
- if ( width > 0xFFFFU || height > 0xFFFFU ) | |||
+ if ( width > 0x7FFFU || height > 0x7FFFU ) | |||
{ | |||
FT_ERROR(( "ft_smooth_render_generic: glyph too large: %d x %d\n", | |||
width, height )); |
@@ -1,23 +0,0 @@ | |||
--- freetype-2.3.11/src/base/ftobjs.c 2010-07-12 17:03:47.000000000 +0200 | |||
+++ freetype-2.3.11/src/base/ftobjs.c 2010-07-12 17:07:06.000000000 +0200 | |||
@@ -1526,7 +1526,19 @@ | |||
goto Exit; | |||
if ( FT_READ_USHORT( flags ) ) | |||
goto Exit; | |||
- rlen -= 2; /* the flags are part of the resource */ | |||
+ FT_TRACE3(( "POST fragment[%d]: offsets=0x%08x, rlen=0x%08x, flags=0x%04x\n", | |||
+ i, offsets[i], rlen, flags )); | |||
+ | |||
+ if ( ( flags >> 8 ) == 0 ) /* Comment, should not be loaded */ | |||
+ continue; | |||
+ | |||
+ /* the flags are part of the resource, so rlen >= 2. */ | |||
+ /* but some fonts declare rlen = 0 for empty fragment */ | |||
+ if ( rlen > 2 ) | |||
+ rlen -= 2; | |||
+ else | |||
+ rlen = 0; | |||
+ | |||
if ( ( flags >> 8 ) == type ) | |||
len += rlen; | |||
else |
@@ -1,13 +0,0 @@ | |||
--- freetype-2.3.11/src/truetype/ttinterp.c 2009-07-31 18:45:19.000000000 +0200 | |||
+++ freetype-2.3.11/src/truetype/ttinterp.c 2010-07-15 14:44:23.000000000 +0200 | |||
@@ -6466,8 +6466,8 @@ | |||
end_point = CUR.pts.contours[contour] - CUR.pts.first_point; | |||
first_point = point; | |||
- if ( CUR.pts.n_points <= end_point ) | |||
- end_point = CUR.pts.n_points; | |||
+ if ( BOUNDS ( end_point, CUR.pts.n_points ) ) | |||
+ end_point = CUR.pts.n_points - 1; | |||
while ( point <= end_point && ( CUR.pts.tags[point] & mask ) == 0 ) | |||
point++; |
@@ -1,154 +0,0 @@ | |||
--- freetype-2.3.11/ft2demos-2.3.11/src/ftdiff.c 2009-04-30 18:07:48.000000000 +0200 | |||
+++ freetype-2.3.11/ft2demos-2.3.11/src/ftdiff.c 2010-07-22 18:18:06.000000000 +0200 | |||
@@ -1054,11 +1054,11 @@ | |||
state->message = state->message0; | |||
if ( total > 1 ) | |||
- sprintf( state->message0, "%s %d/%d @ %5.1fpt", | |||
+ sprintf( state->message0, "%.100s %d/%d @ %5.1fpt", | |||
state->filename, idx + 1, total, | |||
state->char_size ); | |||
else | |||
- sprintf( state->message0, "%s @ %5.1fpt", | |||
+ sprintf( state->message0, "%.100s @ %5.1fpt", | |||
state->filename, | |||
state->char_size ); | |||
} | |||
--- freetype-2.3.11/ft2demos-2.3.11/src/ftgrid.c 2009-04-30 18:15:21.000000000 +0200 | |||
+++ freetype-2.3.11/ft2demos-2.3.11/src/ftgrid.c 2010-07-22 18:18:06.000000000 +0200 | |||
@@ -2,7 +2,7 @@ | |||
/* */ | |||
/* The FreeType project -- a free and portable quality TrueType renderer. */ | |||
/* */ | |||
-/* Copyright 1996-2000, 2003, 2004, 2005, 2006, 2007, 2009 by */ | |||
+/* Copyright 1996-2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010 by */ | |||
/* D. Turner, R.Wilhelm, and W. Lemberg */ | |||
/* */ | |||
/* */ | |||
@@ -787,22 +787,22 @@ grid_status_draw_outline( GridStatus | |||
switch ( error_code ) | |||
{ | |||
case FT_Err_Ok: | |||
- sprintf( status.header_buffer, "%s %s (file `%s')", | |||
+ sprintf( status.header_buffer, "%.50s %.50s (file `%.100s')", | |||
face->family_name, face->style_name, basename ); | |||
break; | |||
case FT_Err_Invalid_Pixel_Size: | |||
- sprintf( status.header_buffer, "Invalid pixel size (file `%s')", | |||
+ sprintf( status.header_buffer, "Invalid pixel size (file `%.100s')", | |||
basename ); | |||
break; | |||
case FT_Err_Invalid_PPem: | |||
- sprintf( status.header_buffer, "Invalid ppem value (file `%s')", | |||
+ sprintf( status.header_buffer, "Invalid ppem value (file `%.100s')", | |||
basename ); | |||
break; | |||
default: | |||
- sprintf( status.header_buffer, "File `%s': error 0x%04x", | |||
+ sprintf( status.header_buffer, "File `%.100s': error 0x%04x", | |||
basename, (FT_UShort)error_code ); | |||
break; | |||
} | |||
--- freetype-2.3.11/ft2demos-2.3.11/src/ftmulti.c 2009-03-14 14:58:28.000000000 +0100 | |||
+++ freetype-2.3.11/ft2demos-2.3.11/src/ftmulti.c 2010-07-22 18:18:39.000000000 +0200 | |||
@@ -2,7 +2,7 @@ | |||
/* */ | |||
/* The FreeType project -- a free and portable quality TrueType renderer. */ | |||
/* */ | |||
-/* Copyright 1996-2000, 2003, 2004, 2005 by */ | |||
+/* Copyright 1996-2000, 2003, 2004, 2005, 2010 by */ | |||
/* D. Turner, R.Wilhelm, and W. Lemberg */ | |||
/* */ | |||
/* */ | |||
@@ -34,7 +34,7 @@ | |||
#define MAXPTSIZE 500 /* dtp */ | |||
- char Header[128]; | |||
+ char Header[256]; | |||
char* new_header = 0; | |||
const unsigned char* Text = (unsigned char*) | |||
@@ -795,7 +795,7 @@ | |||
Render_All( Num, ptsize ); | |||
} | |||
- sprintf( Header, "%s %s (file %s)", | |||
+ sprintf( Header, "%.50s %.50s (file %.100s)", | |||
face->family_name, | |||
face->style_name, | |||
ft_basename( argv[file] ) ); | |||
@@ -830,7 +830,7 @@ | |||
} | |||
else | |||
{ | |||
- sprintf( Header, "%s: not an MM font file, or could not be opened", | |||
+ sprintf( Header, "%.100s: not an MM font file, or could not be opened", | |||
ft_basename( argv[file] ) ); | |||
} | |||
--- freetype-2.3.11/ft2demos-2.3.11/src/ftstring.c 2009-03-14 14:58:28.000000000 +0100 | |||
+++ freetype-2.3.11/ft2demos-2.3.11/src/ftstring.c 2010-07-22 18:18:06.000000000 +0200 | |||
@@ -2,7 +2,7 @@ | |||
/* */ | |||
/* The FreeType project -- a free and portable quality TrueType renderer. */ | |||
/* */ | |||
-/* Copyright 1996-2002, 2003, 2004, 2005, 2006, 2007, 2009 by */ | |||
+/* Copyright 1996-2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 by */ | |||
/* D. Turner, R.Wilhelm, and W. Lemberg */ | |||
/* */ | |||
/* */ | |||
@@ -413,19 +413,20 @@ | |||
switch ( error_code ) | |||
{ | |||
case FT_Err_Ok: | |||
- sprintf( status.header_buffer, "%s %s (file `%s')", face->family_name, | |||
+ sprintf( status.header_buffer, | |||
+ "%.50s %.50s (file `%.100s')", face->family_name, | |||
face->style_name, basename ); | |||
break; | |||
case FT_Err_Invalid_Pixel_Size: | |||
- sprintf( status.header_buffer, "Invalid pixel size (file `%s')", | |||
+ sprintf( status.header_buffer, "Invalid pixel size (file `%.100s')", | |||
basename ); | |||
break; | |||
case FT_Err_Invalid_PPem: | |||
- sprintf( status.header_buffer, "Invalid ppem value (file `%s')", | |||
+ sprintf( status.header_buffer, "Invalid ppem value (file `%.100s')", | |||
basename ); | |||
break; | |||
default: | |||
- sprintf( status.header_buffer, "File `%s': error 0x%04x", basename, | |||
+ sprintf( status.header_buffer, "File `%.100s': error 0x%04x", basename, | |||
(FT_UShort)error_code ); | |||
break; | |||
} | |||
--- freetype-2.3.11/ft2demos-2.3.11/src/ftview.c 2009-04-30 20:08:25.000000000 +0200 | |||
+++ freetype-2.3.11/ft2demos-2.3.11/src/ftview.c 2010-07-22 18:18:06.000000000 +0200 | |||
@@ -1086,19 +1086,19 @@ | |||
switch ( error_code ) | |||
{ | |||
case FT_Err_Ok: | |||
- sprintf( status.header_buffer, "%s %s (file `%s')", | |||
+ sprintf( status.header_buffer, "%.50s %.50s (file `%.100s')", | |||
face->family_name, face->style_name, basename ); | |||
break; | |||
case FT_Err_Invalid_Pixel_Size: | |||
- sprintf( status.header_buffer, "Invalid pixel size (file `%s')", | |||
+ sprintf( status.header_buffer, "Invalid pixel size (file `%.100s')", | |||
basename ); | |||
break; | |||
case FT_Err_Invalid_PPem: | |||
- sprintf( status.header_buffer, "Invalid ppem value (file `%s')", | |||
+ sprintf( status.header_buffer, "Invalid ppem value (file `%.100s')", | |||
basename ); | |||
break; | |||
default: | |||
- sprintf( status.header_buffer, "File `%s': error 0x%04x", | |||
+ sprintf( status.header_buffer, "File `%.100s': error 0x%04x", | |||
basename, (FT_UShort)error_code ); | |||
break; | |||
} |
@@ -1,11 +0,0 @@ | |||
--- freetype-2.3.11/src/base/ftstream.c 2009-08-03 19:51:40.000000000 +0200 | |||
+++ freetype-2.3.11/src/base/ftstream.c 2010-09-30 13:46:08.000000000 +0200 | |||
@@ -275,7 +275,7 @@ | |||
{ | |||
/* check current and new position */ | |||
if ( stream->pos >= stream->size || | |||
- stream->pos + count > stream->size ) | |||
+ stream->size - stream->pos < count ) | |||
{ | |||
FT_ERROR(( "FT_Stream_EnterFrame:" | |||
" invalid i/o; pos = 0x%lx, count = %lu, size = 0x%lx\n", |
@@ -1,41 +0,0 @@ | |||
--- freetype-2.3.11/src/type42/t42parse.c 2009-07-03 15:28:24.000000000 +0200 | |||
+++ freetype-2.3.11/src/type42/t42parse.c 2010-09-23 12:15:56.000000000 +0200 | |||
@@ -4,7 +4,7 @@ | |||
/* */ | |||
/* Type 42 font parser (body). */ | |||
/* */ | |||
-/* Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by */ | |||
+/* Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 by */ | |||
/* Roberto Alameda. */ | |||
/* */ | |||
/* This file is part of the FreeType project, and may only be used, */ | |||
@@ -575,6 +575,12 @@ | |||
} | |||
string_size = T1_ToInt( parser ); | |||
+ if ( string_size < 0 ) | |||
+ { | |||
+ FT_ERROR(( "t42_parse_sfnts: invalid string size\n" )); | |||
+ error = T42_Err_Invalid_File_Format; | |||
+ goto Fail; | |||
+ } | |||
T1_Skip_PS_Token( parser ); /* `RD' */ | |||
if ( parser->root.error ) | |||
@@ -582,13 +588,14 @@ | |||
string_buf = parser->root.cursor + 1; /* one space after `RD' */ | |||
- parser->root.cursor += string_size + 1; | |||
- if ( parser->root.cursor >= limit ) | |||
+ if ( limit - parser->root.cursor < string_size ) | |||
{ | |||
FT_ERROR(( "t42_parse_sfnts: too many binary data\n" )); | |||
error = T42_Err_Invalid_File_Format; | |||
goto Fail; | |||
} | |||
+ else | |||
+ parser->root.cursor += string_size + 1; | |||
} | |||
if ( !string_buf ) |
@@ -1,21 +0,0 @@ | |||
--- freetype-2.3.11/src/base/ftobjs.c 2010-09-30 13:58:50.000000000 +0200 | |||
+++ freetype-2.3.11/src/base/ftobjs.c 2010-09-30 13:59:31.000000000 +0200 | |||
@@ -1529,6 +1529,7 @@ | |||
FT_TRACE3(( "POST fragment[%d]: offsets=0x%08x, rlen=0x%08x, flags=0x%04x\n", | |||
i, offsets[i], rlen, flags )); | |||
+ /* postpone the check of rlen longer than buffer until FT_Stream_Read() */ | |||
if ( ( flags >> 8 ) == 0 ) /* Comment, should not be loaded */ | |||
continue; | |||
@@ -1568,6 +1569,10 @@ | |||
pfb_data[pfb_pos++] = 0; | |||
} | |||
+ error = FT_Err_Cannot_Open_Resource; | |||
+ if ( pfb_pos > pfb_len || pfb_pos + rlen > pfb_len ) | |||
+ goto Exit2; | |||
+ | |||
error = FT_Stream_Read( stream, (FT_Byte *)pfb_data + pfb_pos, rlen ); | |||
if ( error ) | |||
goto Exit2; |
@@ -1,37 +0,0 @@ | |||
--- freetype-2.3.11/src/base/ftstream.c 2010-09-30 14:12:38.000000000 +0200 | |||
+++ freetype-2.3.11/src/base/ftstream.c 2010-09-30 14:12:59.000000000 +0200 | |||
@@ -59,8 +59,17 @@ | |||
{ | |||
FT_Error error = FT_Err_Ok; | |||
+ /* note that seeking to the first position after the file is valid */ | |||
+ if ( pos > stream->size ) | |||
+ { | |||
+ FT_ERROR(( "FT_Stream_Seek:" | |||
+ " invalid i/o; pos = 0x%lx, size = 0x%lx\n", | |||
+ pos, stream->size )); | |||
- if ( stream->read ) | |||
+ error = FT_Err_Invalid_Stream_Operation; | |||
+ } | |||
+ | |||
+ if ( !error && stream->read ) | |||
{ | |||
if ( stream->read( stream, pos, 0, 0 ) ) | |||
{ | |||
@@ -71,15 +80,6 @@ | |||
error = FT_Err_Invalid_Stream_Operation; | |||
} | |||
} | |||
- /* note that seeking to the first position after the file is valid */ | |||
- else if ( pos > stream->size ) | |||
- { | |||
- FT_ERROR(( "FT_Stream_Seek:" | |||
- " invalid i/o; pos = 0x%lx, size = 0x%lx\n", | |||
- pos, stream->size )); | |||
- | |||
- error = FT_Err_Invalid_Stream_Operation; | |||
- } | |||
if ( !error ) | |||
stream->pos = pos; |
@@ -1,20 +0,0 @@ | |||
--- freetype-2.3.11/src/truetype/ttgxvar.c.orig 2009-07-31 18:45:19.000000000 +0200 | |||
+++ freetype-2.3.11/src/truetype/ttgxvar.c 2010-10-22 08:52:37.000000000 +0200 | |||
@@ -157,7 +157,7 @@ | |||
runcnt = runcnt & GX_PT_POINT_RUN_COUNT_MASK; | |||
first = points[i++] = FT_GET_USHORT(); | |||
- if ( runcnt < 1 ) | |||
+ if ( runcnt < 1 || i + runcnt >= n ) | |||
goto Exit; | |||
/* first point not included in runcount */ | |||
@@ -168,7 +168,7 @@ | |||
{ | |||
first = points[i++] = FT_GET_BYTE(); | |||
- if ( runcnt < 1 ) | |||
+ if ( runcnt < 1 || i + runcnt >= n ) | |||
goto Exit; | |||
for ( j = 0; j < runcnt; ++j ) |
@@ -1,108 +0,0 @@ | |||
--- freetype-2.3.11/src/psaux/t1decode.c 2009-09-29 19:51:31.000000000 +0200 | |||
+++ freetype-2.3.11/src/psaux/t1decode.c 2011-07-20 14:39:24.000000000 +0200 | |||
@@ -4,7 +4,7 @@ | |||
/* */ | |||
/* PostScript Type 1 decoding routines (body). */ | |||
/* */ | |||
-/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by */ | |||
+/* Copyright 2000-2011 by */ | |||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |||
/* */ | |||
/* This file is part of the FreeType project, and may only be used, */ | |||
@@ -27,6 +27,8 @@ | |||
#include "psauxerr.h" | |||
+/* ensure proper sign extension */ | |||
+#define Fix2Int( f ) ( (FT_Int)(FT_Short)( (f) >> 16 ) ) | |||
/*************************************************************************/ | |||
/* */ | |||
@@ -665,7 +667,7 @@ | |||
if ( large_int ) | |||
FT_TRACE4(( " %ld", value )); | |||
else | |||
- FT_TRACE4(( " %ld", (FT_Int32)( value >> 16 ) )); | |||
+ FT_TRACE4(( " %ld", Fix2Int( value ) )); | |||
#endif | |||
*top++ = value; | |||
@@ -687,8 +689,8 @@ | |||
top -= 2; | |||
- subr_no = (FT_Int)( top[1] >> 16 ); | |||
- arg_cnt = (FT_Int)( top[0] >> 16 ); | |||
+ subr_no = Fix2Int( top[1] ); | |||
+ arg_cnt = Fix2Int( top[0] ); | |||
/***********************************************************/ | |||
/* */ | |||
@@ -861,7 +863,7 @@ | |||
if ( arg_cnt != 1 || blend == NULL ) | |||
goto Unexpected_OtherSubr; | |||
- idx = (FT_Int)( top[0] >> 16 ); | |||
+ idx = Fix2Int( top[0] ); | |||
if ( idx < 0 || | |||
idx + blend->num_designs > decoder->len_buildchar ) | |||
@@ -929,7 +931,7 @@ | |||
if ( arg_cnt != 2 || blend == NULL ) | |||
goto Unexpected_OtherSubr; | |||
- idx = (FT_Int)( top[1] >> 16 ); | |||
+ idx = Fix2Int( top[1] ); | |||
if ( idx < 0 || (FT_UInt) idx >= decoder->len_buildchar ) | |||
goto Unexpected_OtherSubr; | |||
@@ -950,7 +952,7 @@ | |||
if ( arg_cnt != 1 || blend == NULL ) | |||
goto Unexpected_OtherSubr; | |||
- idx = (FT_Int)( top[0] >> 16 ); | |||
+ idx = Fix2Int( top[0] ); | |||
if ( idx < 0 || (FT_UInt) idx >= decoder->len_buildchar ) | |||
goto Unexpected_OtherSubr; | |||
@@ -1008,11 +1010,15 @@ | |||
break; | |||
default: | |||
- FT_ERROR(( "t1_decoder_parse_charstrings:" | |||
- " unknown othersubr [%d %d], wish me luck\n", | |||
- arg_cnt, subr_no )); | |||
- unknown_othersubr_result_cnt = arg_cnt; | |||
- break; | |||
+ if ( arg_cnt >= 0 && subr_no >= 0 ) | |||
+ { | |||
+ FT_ERROR(( "t1_decoder_parse_charstrings:" | |||
+ " unknown othersubr [%d %d], wish me luck\n", | |||
+ arg_cnt, subr_no )); | |||
+ unknown_othersubr_result_cnt = arg_cnt; | |||
+ break; | |||
+ } | |||
+ /* fall through */ | |||
Unexpected_OtherSubr: | |||
FT_ERROR(( "t1_decoder_parse_charstrings:" | |||
@@ -1138,8 +1144,8 @@ | |||
top[0], | |||
top[1], | |||
top[2], | |||
- (FT_Int)( top[3] >> 16 ), | |||
- (FT_Int)( top[4] >> 16 ) ); | |||
+ Fix2Int( top[3] ), | |||
+ Fix2Int( top[4] ) ); | |||
case op_sbw: | |||
FT_TRACE4(( " sbw" )); | |||
@@ -1313,7 +1319,7 @@ | |||
FT_TRACE4(( " callsubr" )); | |||
- idx = (FT_Int)( top[0] >> 16 ); | |||
+ idx = Fix2Int( top[0] ); | |||
if ( idx < 0 || idx >= (FT_Int)decoder->num_subrs ) | |||
{ | |||
FT_ERROR(( "t1_decoder_parse_charstrings:" |
@@ -1,92 +0,0 @@ | |||
--- freetype-2.3.11/src/base/ftbitmap.c 2009-07-31 18:45:18.000000000 +0200 | |||
+++ freetype-2.3.11/src/base/ftbitmap.c 2011-10-19 12:25:26.000000000 +0200 | |||
@@ -4,7 +4,7 @@ | |||
/* */ | |||
/* FreeType utility functions for bitmaps (body). */ | |||
/* */ | |||
-/* Copyright 2004, 2005, 2006, 2007, 2008, 2009 by */ | |||
+/* Copyright 2004-2009, 2011 by */ | |||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |||
/* */ | |||
/* This file is part of the FreeType project, and may only be used, */ | |||
@@ -417,6 +417,10 @@ | |||
target->pitch = source->width + pad; | |||
+ if ( target->pitch > 0 && | |||
+ target->rows > FT_ULONG_MAX / target->pitch ) | |||
+ return FT_Err_Invalid_Argument; | |||
+ | |||
if ( target->rows * target->pitch > old_size && | |||
FT_QREALLOC( target->buffer, | |||
old_size, target->rows * target->pitch ) ) | |||
--- freetype-2.3.11/src/psaux/t1decode.c 2011-10-19 12:25:26.000000000 +0200 | |||
+++ freetype-2.3.11/src/psaux/t1decode.c 2011-10-19 12:25:26.000000000 +0200 | |||
@@ -748,6 +748,13 @@ | |||
if ( arg_cnt != 0 ) | |||
goto Unexpected_OtherSubr; | |||
+ if ( decoder->flex_state == 0 ) | |||
+ { | |||
+ FT_ERROR(( "t1_decoder_parse_charstrings:" | |||
+ " missing flex start\n" )); | |||
+ goto Syntax_Error; | |||
+ } | |||
+ | |||
/* note that we should not add a point for index 0; */ | |||
/* this will move our current position to the flex */ | |||
/* point without adding any point to the outline */ | |||
--- freetype-2.3.11/src/raster/ftrend1.c 2009-07-03 15:28:24.000000000 +0200 | |||
+++ freetype-2.3.11/src/raster/ftrend1.c 2011-10-19 13:26:02.000000000 +0200 | |||
@@ -4,7 +4,7 @@ | |||
/* */ | |||
/* The FreeType glyph rasterizer interface (body). */ | |||
/* */ | |||
-/* Copyright 1996-2001, 2002, 2003, 2005, 2006 by */ | |||
+/* Copyright 1996-2003, 2005, 2006, 2011 by */ | |||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |||
/* */ | |||
/* This file is part of the FreeType project, and may only be used, */ | |||
@@ -25,6 +25,7 @@ | |||
#include "rasterrs.h" | |||
+#define FT_USHORT_MAX USHRT_MAX | |||
/* initialize renderer -- init its raster */ | |||
static FT_Error | |||
@@ -168,6 +169,13 @@ | |||
width = (FT_UInt)( ( cbox.xMax - cbox.xMin ) >> 6 ); | |||
height = (FT_UInt)( ( cbox.yMax - cbox.yMin ) >> 6 ); | |||
+ | |||
+ if ( width > FT_USHORT_MAX || height > FT_USHORT_MAX ) | |||
+ { | |||
+ error = Raster_Err_Invalid_Argument; | |||
+ goto Exit; | |||
+ } | |||
+ | |||
bitmap = &slot->bitmap; | |||
memory = render->root.memory; | |||
--- freetype-2.3.11/src/truetype/ttgxvar.c 2011-10-19 12:25:26.000000000 +0200 | |||
+++ freetype-2.3.11/src/truetype/ttgxvar.c 2011-10-19 12:25:26.000000000 +0200 | |||
@@ -4,7 +4,7 @@ | |||
/* */ | |||
/* TrueType GX Font Variation loader */ | |||
/* */ | |||
-/* Copyright 2004, 2005, 2006, 2007, 2008, 2009 by */ | |||
+/* Copyright 2004-2011 by */ | |||
/* David Turner, Robert Wilhelm, Werner Lemberg, and George Williams. */ | |||
/* */ | |||
/* This file is part of the FreeType project, and may only be used, */ | |||
@@ -1473,6 +1473,9 @@ | |||
{ | |||
for ( j = 0; j < point_count; ++j ) | |||
{ | |||
+ if ( localpoints[j] >= n_points ) | |||
+ continue; | |||
+ | |||
delta_xy[localpoints[j]].x += FT_MulFix( deltas_x[j], apply ); | |||
delta_xy[localpoints[j]].y += FT_MulFix( deltas_y[j], apply ); | |||
} |
@@ -1,76 +0,0 @@ | |||
--- freetype-2.3.11/src/cid/cidload.c 2009-07-03 15:28:24.000000000 +0200 | |||
+++ freetype-2.3.11/src/cid/cidload.c 2011-11-15 12:58:41.000000000 +0100 | |||
@@ -4,7 +4,7 @@ | |||
/* */ | |||
/* CID-keyed Type1 font loader (body). */ | |||
/* */ | |||
-/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2009 by */ | |||
+/* Copyright 1996-2006, 2009, 2011 by */ | |||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |||
/* */ | |||
/* This file is part of the FreeType project, and may only be used, */ | |||
@@ -110,7 +110,7 @@ | |||
CID_FaceDict dict; | |||
- if ( parser->num_dict < 0 ) | |||
+ if ( parser->num_dict < 0 || parser->num_dict >= cid->num_dicts ) | |||
{ | |||
FT_ERROR(( "cid_load_keyword: invalid use of `%s'\n", | |||
keyword->ident )); | |||
@@ -158,7 +158,7 @@ | |||
FT_Fixed temp_scale; | |||
- if ( parser->num_dict >= 0 ) | |||
+ if ( parser->num_dict >= 0 && parser->num_dict < face->cid.num_dicts ) | |||
{ | |||
dict = face->cid.font_dicts + parser->num_dict; | |||
matrix = &dict->font_matrix; | |||
@@ -249,7 +249,7 @@ | |||
CID_FaceDict dict; | |||
- if ( parser->num_dict >= 0 ) | |||
+ if ( parser->num_dict >= 0 && parser->num_dict < face->cid.num_dicts ) | |||
{ | |||
dict = face->cid.font_dicts + parser->num_dict; | |||
@@ -413,12 +413,25 @@ | |||
FT_Byte* p; | |||
+ /* Check for possible overflow. */ | |||
+ if ( num_subrs == FT_UINT_MAX ) | |||
+ { | |||
+ error = CID_Err_Syntax_Error; | |||
+ goto Fail; | |||
+ } | |||
+ | |||
/* reallocate offsets array if needed */ | |||
if ( num_subrs + 1 > max_offsets ) | |||
{ | |||
FT_UInt new_max = FT_PAD_CEIL( num_subrs + 1, 4 ); | |||
+ if ( new_max <= max_offsets ) | |||
+ { | |||
+ error = CID_Err_Syntax_Error; | |||
+ goto Fail; | |||
+ } | |||
+ | |||
if ( FT_RENEW_ARRAY( offsets, max_offsets, new_max ) ) | |||
goto Fail; | |||
@@ -436,6 +449,11 @@ | |||
FT_FRAME_EXIT(); | |||
+ /* offsets must be ordered */ | |||
+ for ( count = 1; count <= num_subrs; count++ ) | |||
+ if ( offsets[count - 1] > offsets[count] ) | |||
+ goto Fail; | |||
+ | |||
/* now, compute the size of subrs charstrings, */ | |||
/* allocate, and read them */ | |||
data_len = offsets[num_subrs] - offsets[0]; |
@@ -1,20 +0,0 @@ | |||
--- freetype-2.3.11/src/bdf/bdflib.c 2009-09-12 23:14:25.000000000 +0200 | |||
+++ freetype-2.3.11/src/bdf/bdflib.c 2012-03-28 10:19:23.000000000 +0200 | |||
@@ -1,6 +1,6 @@ | |||
/* | |||
* Copyright 2000 Computing Research Labs, New Mexico State University | |||
- * Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 | |||
+ * Copyright 2001-2012 | |||
* Francesco Zappa Nardelli | |||
* | |||
* Permission is hereby granted, free of charge, to any person obtaining a | |||
@@ -1235,7 +1235,8 @@ | |||
ep = line + linelen; | |||
/* Trim the leading whitespace if it exists. */ | |||
- *sp++ = 0; | |||
+ if ( *sp ) | |||
+ *sp++ = 0; | |||
while ( *sp && | |||
( *sp == ' ' || *sp == '\t' ) ) | |||
sp++; |
@@ -1,43 +0,0 @@ | |||
--- freetype-2.3.11/src/bdf/bdflib.c 2012-03-28 10:20:31.000000000 +0200 | |||
+++ freetype-2.3.11/src/bdf/bdflib.c 2012-03-28 10:22:28.000000000 +0200 | |||
@@ -1092,6 +1092,7 @@ | |||
#define ACMSG13 "Glyph %ld extra rows removed.\n" | |||
#define ACMSG14 "Glyph %ld extra columns removed.\n" | |||
#define ACMSG15 "Incorrect glyph count: %ld indicated but %ld found.\n" | |||
+#define ACMSG16 "Glyph %ld missing columns padded with zero bits.\n" | |||
/* Error messages. */ | |||
#define ERRMSG1 "[line %ld] Missing \"%s\" line.\n" | |||
@@ -1695,18 +1696,31 @@ | |||
for ( i = 0; i < nibbles; i++ ) | |||
{ | |||
c = line[i]; | |||
+ if ( !c ) | |||
+ break; | |||
*bp = (FT_Byte)( ( *bp << 4 ) + a2i[c] ); | |||
if ( i + 1 < nibbles && ( i & 1 ) ) | |||
*++bp = 0; | |||
} | |||
+ /* If any line has not enough columns, */ | |||
+ /* indicate they have been padded with zero bits. */ | |||
+ if ( i < nibbles && | |||
+ !( p->flags & _BDF_GLYPH_WIDTH_CHECK ) ) | |||
+ { | |||
+ FT_TRACE2(( "_bdf_parse_glyphs: " ACMSG16, glyph->encoding )); | |||
+ p->flags |= _BDF_GLYPH_WIDTH_CHECK; | |||
+ font->modified = 1; | |||
+ } | |||
+ | |||
/* Remove possible garbage at the right. */ | |||
mask_index = ( glyph->bbx.width * p->font->bpp ) & 7; | |||
if ( glyph->bbx.width ) | |||
*bp &= nibble_mask[mask_index]; | |||
/* If any line has extra columns, indicate they have been removed. */ | |||
- if ( ( line[nibbles] == '0' || a2i[(int)line[nibbles]] != 0 ) && | |||
+ if ( i == nibbles && | |||
+ ( line[nibbles] == '0' || a2i[(int)line[nibbles]] != 0 ) && | |||
!( p->flags & _BDF_GLYPH_WIDTH_CHECK ) ) | |||
{ | |||
FT_TRACE2(( "_bdf_parse_glyphs: " ACMSG14, glyph->encoding )); |
@@ -1,21 +0,0 @@ | |||
--- freetype-2.3.11/src/pcf/pcfread.c 2009-10-10 19:32:28.000000000 +0200 | |||
+++ freetype-2.3.11/src/pcf/pcfread.c 2012-03-28 10:29:54.000000000 +0200 | |||
@@ -2,7 +2,7 @@ | |||
FreeType font driver for pcf fonts | |||
- Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by | |||
+ Copyright 2000-2010, 2012 by | |||
Francesco Zappa Nardelli | |||
Permission is hereby granted, free of charge, to any person obtaining a copy | |||
@@ -495,7 +495,8 @@ THE SOFTWARE. | |||
goto Bail; | |||
} | |||
- if ( FT_NEW_ARRAY( strings, string_size ) ) | |||
+ /* allocate one more byte so that we have a final null byte */ | |||
+ if ( FT_NEW_ARRAY( strings, string_size + 1 ) ) | |||
goto Bail; | |||
error = FT_Stream_Read( stream, (FT_Byte*)strings, string_size ); |
@@ -1,40 +0,0 @@ | |||
--- freetype-2.3.11/src/smooth/ftsmooth.c 2012-03-28 10:30:52.000000000 +0200 | |||
+++ freetype-2.3.11/src/smooth/ftsmooth.c 2012-03-28 10:33:13.000000000 +0200 | |||
@@ -4,7 +4,7 @@ | |||
/* */ | |||
/* Anti-aliasing renderer interface (body). */ | |||
/* */ | |||
-/* Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006, 2009, 2010 by */ | |||
+/* Copyright 2000-2006, 2009-2012 by */ | |||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |||
/* */ | |||
/* This file is part of the FreeType project, and may only be used, */ | |||
@@ -105,7 +105,7 @@ | |||
FT_Error error; | |||
FT_Outline* outline = NULL; | |||
FT_BBox cbox; | |||
- FT_UInt width, height, height_org, width_org, pitch; | |||
+ FT_Pos width, height, height_org, width_org, pitch; | |||
FT_Bitmap* bitmap; | |||
FT_Memory memory; | |||
FT_Int hmul = mode == FT_RENDER_MODE_LCD; | |||
@@ -140,8 +140,8 @@ | |||
cbox.xMax = FT_PIX_CEIL( cbox.xMax ); | |||
cbox.yMax = FT_PIX_CEIL( cbox.yMax ); | |||
- width = (FT_UInt)( ( cbox.xMax - cbox.xMin ) >> 6 ); | |||
- height = (FT_UInt)( ( cbox.yMax - cbox.yMin ) >> 6 ); | |||
+ width = ( cbox.xMax - cbox.xMin ) >> 6; | |||
+ height = ( cbox.yMax - cbox.yMin ) >> 6; | |||
bitmap = &slot->bitmap; | |||
memory = render->root.memory; | |||
@@ -200,7 +200,7 @@ | |||
/* Required check is ( pitch * height < FT_ULONG_MAX ), */ | |||
/* but we care realistic cases only. Always pitch <= width. */ | |||
- if ( width > 0x7FFFU || height > 0x7FFFU ) | |||
+ if ( width > 0x7FFF || height > 0x7FFF ) | |||
{ | |||
FT_ERROR(( "ft_smooth_render_generic: glyph too large: %d x %d\n", | |||
width, height )); |
@@ -1,130 +0,0 @@ | |||
--- freetype-2.3.11/src/psaux/psobjs.c 2009-07-31 18:45:18.000000000 +0200 | |||
+++ freetype-2.3.11/src/psaux/psobjs.c 2012-04-03 13:14:05.000000000 +0200 | |||
@@ -4,7 +4,7 @@ | |||
/* */ | |||
/* Auxiliary functions for PostScript fonts (body). */ | |||
/* */ | |||
-/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by */ | |||
+/* Copyright 1996-2012 by */ | |||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |||
/* */ | |||
/* This file is part of the FreeType project, and may only be used, */ | |||
@@ -589,7 +589,7 @@ | |||
} | |||
Exit: | |||
- if ( cur == parser->cursor ) | |||
+ if ( cur < limit && cur == parser->cursor ) | |||
{ | |||
FT_ERROR(( "ps_parser_skip_PS_token:" | |||
" current token is `%c' which is self-delimiting\n" | |||
--- freetype-2.3.11/src/type1/t1load.c 2009-09-01 08:07:32.000000000 +0200 | |||
+++ freetype-2.3.11/src/type1/t1load.c 2012-04-03 13:14:30.000000000 +0200 | |||
@@ -71,6 +71,13 @@ | |||
#include "t1errors.h" | |||
+#ifdef FT_CONFIG_OPTION_INCREMENTAL | |||
+#define IS_INCREMENTAL ( face->root.internal->incremental_interface != 0 ) | |||
+#else | |||
+#define IS_INCREMENTAL 0 | |||
+#endif | |||
+ | |||
+ | |||
/*************************************************************************/ | |||
/* */ | |||
/* The macro FT_COMPONENT is used in trace mode. It is an implicit */ | |||
@@ -1027,7 +1034,8 @@ | |||
static int | |||
read_binary_data( T1_Parser parser, | |||
FT_Long* size, | |||
- FT_Byte** base ) | |||
+ FT_Byte** base, | |||
+ FT_Bool incremental ) | |||
{ | |||
FT_Byte* cur; | |||
FT_Byte* limit = parser->root.limit; | |||
@@ -1057,8 +1065,12 @@ | |||
return !parser->root.error; | |||
} | |||
- FT_ERROR(( "read_binary_data: invalid size field\n" )); | |||
- parser->root.error = T1_Err_Invalid_File_Format; | |||
+ if( !incremental ) | |||
+ { | |||
+ FT_ERROR(( "read_binary_data: invalid size field\n" )); | |||
+ parser->root.error = T1_Err_Invalid_File_Format; | |||
+ } | |||
+ | |||
return 0; | |||
} | |||
@@ -1379,15 +1391,17 @@ | |||
FT_Byte* base; | |||
- /* If the next token isn't `dup' we are done. */ | |||
- if ( ft_strncmp( (char*)parser->root.cursor, "dup", 3 ) != 0 ) | |||
+ /* If we are out of data, or if the next token isn't `dup', */ | |||
+ /* we are done. */ | |||
+ if ( parser->root.cursor + 4 >= parser->root.limit || | |||
+ ft_strncmp( (char*)parser->root.cursor, "dup", 3 ) != 0 ) | |||
break; | |||
T1_Skip_PS_Token( parser ); /* `dup' */ | |||
idx = T1_ToInt( parser ); | |||
- if ( !read_binary_data( parser, &size, &base ) ) | |||
+ if ( !read_binary_data( parser, &size, &base, IS_INCREMENTAL ) ) | |||
return; | |||
/* The binary string is followed by one token, e.g. `NP' */ | |||
@@ -1399,7 +1413,8 @@ | |||
return; | |||
T1_Skip_Spaces ( parser ); | |||
- if ( ft_strncmp( (char*)parser->root.cursor, "put", 3 ) == 0 ) | |||
+ if ( parser->root.cursor + 4 < parser->root.limit && | |||
+ ft_strncmp( (char*)parser->root.cursor, "put", 3 ) == 0 ) | |||
{ | |||
T1_Skip_PS_Token( parser ); /* skip `put' */ | |||
T1_Skip_Spaces ( parser ); | |||
@@ -1572,7 +1587,7 @@ | |||
cur++; /* skip `/' */ | |||
len = parser->root.cursor - cur; | |||
- if ( !read_binary_data( parser, &size, &base ) ) | |||
+ if ( !read_binary_data( parser, &size, &base, IS_INCREMENTAL ) ) | |||
return; | |||
/* for some non-standard fonts like `Optima' which provides */ | |||
@@ -1861,7 +1876,7 @@ | |||
parser->root.cursor = start_binary; | |||
- if ( !read_binary_data( parser, &s, &b ) ) | |||
+ if ( !read_binary_data( parser, &s, &b, IS_INCREMENTAL ) ) | |||
return T1_Err_Invalid_File_Format; | |||
have_integer = 0; | |||
} | |||
@@ -1874,7 +1889,7 @@ | |||
parser->root.cursor = start_binary; | |||
- if ( !read_binary_data( parser, &s, &b ) ) | |||
+ if ( !read_binary_data( parser, &s, &b, IS_INCREMENTAL ) ) | |||
return T1_Err_Invalid_File_Format; | |||
have_integer = 0; | |||
} | |||
@@ -2148,9 +2163,7 @@ | |||
type1->subrs_len = loader.subrs.lengths; | |||
} | |||
-#ifdef FT_CONFIG_OPTION_INCREMENTAL | |||
- if ( !face->root.internal->incremental_interface ) | |||
-#endif | |||
+ if ( !IS_INCREMENTAL ) | |||
if ( !loader.charstrings.init ) | |||
{ | |||
FT_ERROR(( "T1_Open_Face: no `/CharStrings' array in face\n" )); |
@@ -1,26 +0,0 @@ | |||
--- freetype-2.3.11/src/type1/t1parse.c 2009-07-03 15:28:24.000000000 +0200 | |||
+++ freetype-2.3.11/src/type1/t1parse.c 2012-03-28 10:39:25.000000000 +0200 | |||
@@ -4,7 +4,7 @@ | |||
/* */ | |||
/* Type 1 parser (body). */ | |||
/* */ | |||
-/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2008, 2009 by */ | |||
+/* Copyright 1996-2005, 2008, 2009, 2012 by */ | |||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |||
/* */ | |||
/* This file is part of the FreeType project, and may only be used, */ | |||
@@ -464,6 +464,14 @@ | |||
/* we now decrypt the encoded binary private dictionary */ | |||
psaux->t1_decrypt( parser->private_dict, parser->private_len, 55665U ); | |||
+ if ( parser->private_len < 4 ) | |||
+ { | |||
+ FT_ERROR(( "T1_Get_Private_Dict:" | |||
+ " invalid private dictionary section\n" )); | |||
+ error = T1_Err_Invalid_File_Format; | |||
+ goto Fail; | |||
+ } | |||
+ | |||
/* replace the four random bytes at the beginning with whitespace */ | |||
parser->private_dict[0] = ' '; | |||
parser->private_dict[1] = ' '; |
@@ -1,49 +0,0 @@ | |||
--- freetype-2.3.11/src/bdf/bdflib.c 2012-03-28 10:40:25.000000000 +0200 | |||
+++ freetype-2.3.11/src/bdf/bdflib.c 2012-03-28 10:44:30.000000000 +0200 | |||
@@ -1736,12 +1736,7 @@ | |||
if ( ft_memcmp( line, "SWIDTH", 6 ) == 0 ) | |||
{ | |||
if ( !( p->flags & _BDF_ENCODING ) ) | |||
- { | |||
- /* Missing ENCODING field. */ | |||
- FT_ERROR(( "_bdf_parse_glyphs: " ERRMSG1, lineno, "ENCODING" )); | |||
- error = BDF_Err_Missing_Encoding_Field; | |||
- goto Exit; | |||
- } | |||
+ goto Missing_Encoding; | |||
error = _bdf_list_split( &p->list, (char *)" +", line, linelen ); | |||
if ( error ) | |||
@@ -1756,6 +1751,9 @@ | |||
/* Expect the DWIDTH (scalable width) field next. */ | |||
if ( ft_memcmp( line, "DWIDTH", 6 ) == 0 ) | |||
{ | |||
+ if ( !( p->flags & _BDF_ENCODING ) ) | |||
+ goto Missing_Encoding; | |||
+ | |||
error = _bdf_list_split( &p->list, (char *)" +", line, linelen ); | |||
if ( error ) | |||
goto Exit; | |||
@@ -1781,6 +1779,9 @@ | |||
/* Expect the BBX field next. */ | |||
if ( ft_memcmp( line, "BBX", 3 ) == 0 ) | |||
{ | |||
+ if ( !( p->flags & _BDF_ENCODING ) ) | |||
+ goto Missing_Encoding; | |||
+ | |||
error = _bdf_list_split( &p->list, (char *)" +", line, linelen ); | |||
if ( error ) | |||
goto Exit; | |||
@@ -1880,6 +1881,12 @@ | |||
} | |||
error = BDF_Err_Invalid_File_Format; | |||
+ goto Exit; | |||
+ | |||
+ Missing_Encoding: | |||
+ /* Missing ENCODING field. */ | |||
+ FT_ERROR(( "_bdf_parse_glyphs: " ERRMSG1, lineno, "ENCODING" )); | |||
+ error = BDF_Err_Missing_Encoding_Field; | |||
Exit: | |||
return error; |
@@ -1,11 +0,0 @@ | |||
--- freetype-2.3.11/src/bdf/bdflib.c 2012-03-28 10:46:09.000000000 +0200 | |||
+++ freetype-2.3.11/src/bdf/bdflib.c 2012-03-28 10:45:50.000000000 +0200 | |||
@@ -424,7 +424,7 @@ | |||
if ( num_items > list->size ) | |||
{ | |||
unsigned long oldsize = list->size; /* same as _bdf_list_t.size */ | |||
- unsigned long newsize = oldsize + ( oldsize >> 1 ) + 4; | |||
+ unsigned long newsize = oldsize + ( oldsize >> 1 ) + 5; | |||
unsigned long bigsize = (unsigned long)( FT_INT_MAX / sizeof ( char* ) ); | |||
FT_Memory memory = list->memory; | |||
@@ -1,33 +0,0 @@ | |||
--- freetype-2.3.11/src/bdf/bdflib.c 2012-03-28 10:49:56.000000000 +0200 | |||
+++ freetype-2.3.11/src/bdf/bdflib.c 2012-03-28 10:51:40.000000000 +0200 | |||
@@ -785,7 +785,7 @@ | |||
}; | |||
-#define isdigok( m, d ) (m[(d) >> 3] & ( 1 << ( (d) & 7 ) ) ) | |||
+#define isdigok( m, d ) (m[(unsigned char)(d) >> 3] & ( 1 << ( (d) & 7 ) ) ) | |||
/* Routine to convert an ASCII string into an unsigned long integer. */ | |||
@@ -1696,7 +1696,7 @@ | |||
for ( i = 0; i < nibbles; i++ ) | |||
{ | |||
c = line[i]; | |||
- if ( !c ) | |||
+ if ( !isdigok( hdigits, c ) ) | |||
break; | |||
*bp = (FT_Byte)( ( *bp << 4 ) + a2i[c] ); | |||
if ( i + 1 < nibbles && ( i & 1 ) ) | |||
@@ -1719,9 +1719,9 @@ | |||
*bp &= nibble_mask[mask_index]; | |||
/* If any line has extra columns, indicate they have been removed. */ | |||
- if ( i == nibbles && | |||
- ( line[nibbles] == '0' || a2i[(int)line[nibbles]] != 0 ) && | |||
- !( p->flags & _BDF_GLYPH_WIDTH_CHECK ) ) | |||
+ if ( i == nibbles && | |||
+ isdigok( hdigits, line[nibbles] ) && | |||
+ !( p->flags & _BDF_GLYPH_WIDTH_CHECK ) ) | |||
{ | |||
FT_TRACE2(( "_bdf_parse_glyphs: " ACMSG14, glyph->encoding )); | |||
p->flags |= _BDF_GLYPH_WIDTH_CHECK; |
@@ -1,53 +0,0 @@ | |||
--- freetype-2.3.11/src/psaux/psconv.c 2009-07-31 18:45:18.000000000 +0200 | |||
+++ freetype-2.3.11/src/psaux/psconv.c 2012-03-28 10:55:16.000000000 +0200 | |||
@@ -4,7 +4,7 @@ | |||
/* */ | |||
/* Some convenience conversions (body). */ | |||
/* */ | |||
-/* Copyright 2006, 2008, 2009 by */ | |||
+/* Copyright 2006, 2008, 2009, 2012 by */ | |||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |||
/* */ | |||
/* This file is part of the FreeType project, and may only be used, */ | |||
@@ -79,7 +79,7 @@ | |||
FT_Bool sign = 0; | |||
- if ( p == limit || base < 2 || base > 36 ) | |||
+ if ( p >= limit || base < 2 || base > 36 ) | |||
return 0; | |||
if ( *p == '-' || *p == '+' ) | |||
@@ -150,7 +150,7 @@ | |||
FT_Bool sign = 0; | |||
- if ( p == limit ) | |||
+ if ( p >= limit ) | |||
return 0; | |||
if ( *p == '-' || *p == '+' ) | |||
@@ -346,7 +346,11 @@ | |||
#if 1 | |||
- p = *cursor; | |||
+ p = *cursor; | |||
+ | |||
+ if ( p >= limit ) | |||
+ return 0; | |||
+ | |||
if ( n > (FT_UInt)( limit - p ) ) | |||
n = (FT_UInt)( limit - p ); | |||
@@ -434,6 +438,10 @@ | |||
#if 1 | |||
p = *cursor; | |||
+ | |||
+ if ( p >= limit ) | |||
+ return 0; | |||
+ | |||
if ( n > (FT_UInt)(limit - p) ) | |||
n = (FT_UInt)(limit - p); | |||
@@ -1,17 +0,0 @@ | |||
--- freetype-2.3.11/src/bdf/bdflib.c 2012-03-28 11:53:32.000000000 +0200 | |||
+++ freetype-2.3.11/src/bdf/bdflib.c 2012-03-28 11:54:12.000000000 +0200 | |||
@@ -520,6 +520,14 @@ | |||
/* Initialize the list. */ | |||
list->used = 0; | |||
+ if ( list->size ) | |||
+ { | |||
+ list->field[0] = (char*)empty; | |||
+ list->field[1] = (char*)empty; | |||
+ list->field[2] = (char*)empty; | |||
+ list->field[3] = (char*)empty; | |||
+ list->field[4] = (char*)empty; | |||
+ } | |||
/* If the line is empty, then simply return. */ | |||
if ( linelen == 0 || line[0] == 0 ) |
@@ -1,27 +0,0 @@ | |||
--- freetype-2.3.11/src/winfonts/winfnt.c 2009-07-31 18:45:19.000000000 +0200 | |||
+++ freetype-2.3.11/src/winfonts/winfnt.c 2012-03-28 11:57:05.000000000 +0200 | |||
@@ -4,7 +4,7 @@ | |||
/* */ | |||
/* FreeType font driver for Windows FNT/FON files */ | |||
/* */ | |||
-/* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009 by */ | |||
+/* Copyright 1996-2004, 2006-2012 by */ | |||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |||
/* Copyright 2003 Huw D M Davies for Codeweavers */ | |||
/* Copyright 2007 Dmitry Timoshkov for Codeweavers */ | |||
@@ -825,7 +825,14 @@ | |||
root->charmap = root->charmaps[0]; | |||
} | |||
- /* setup remaining flags */ | |||
+ /* set up remaining flags */ | |||
+ | |||
+ if ( font->header.last_char < font->header.first_char ) | |||
+ { | |||
+ FT_TRACE2(( "invalid number of glyphs\n" )); | |||
+ error = FNT_Err_Invalid_File_Format; | |||
+ goto Fail; | |||
+ } | |||
/* reserve one slot for the .notdef glyph at index 0 */ | |||
root->num_glyphs = font->header.last_char - |
@@ -1,67 +0,0 @@ | |||
--- freetype-2.3.11/src/base/ftcalc.c 2009-07-31 18:45:18.000000000 +0200 | |||
+++ freetype-2.3.11/src/base/ftcalc.c 2012-03-28 11:59:17.000000000 +0200 | |||
@@ -4,7 +4,7 @@ | |||
/* */ | |||
/* Arithmetic computations (body). */ | |||
/* */ | |||
-/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2008 by */ | |||
+/* Copyright 1996-2006, 2008, 2012 by */ | |||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ | |||
/* */ | |||
/* This file is part of the FreeType project, and may only be used, */ | |||
@@ -307,7 +307,7 @@ | |||
q <<= 1; | |||
r |= lo >> 31; | |||
- if ( r >= (FT_UInt32)y ) | |||
+ if ( r >= y ) | |||
{ | |||
r -= y; | |||
q |= 1; | |||
@@ -373,7 +373,7 @@ | |||
if ( a <= 46340L && b <= 46340L && c <= 176095L && c > 0 ) | |||
a = ( a * b + ( c >> 1 ) ) / c; | |||
- else if ( c > 0 ) | |||
+ else if ( (FT_Int32)c > 0 ) | |||
{ | |||
FT_Int64 temp, temp2; | |||
@@ -412,7 +412,7 @@ | |||
if ( a <= 46340L && b <= 46340L && c > 0 ) | |||
a = a * b / c; | |||
- else if ( c > 0 ) | |||
+ else if ( (FT_Int32)c > 0 ) | |||
{ | |||
FT_Int64 temp; | |||
@@ -544,7 +544,7 @@ | |||
s = (FT_Int32)a; a = FT_ABS( a ); | |||
s ^= (FT_Int32)b; b = FT_ABS( b ); | |||
- if ( b == 0 ) | |||
+ if ( (FT_UInt32)b == 0 ) | |||
{ | |||
/* check for division by 0 */ | |||
q = (FT_UInt32)0x7FFFFFFFL; | |||
@@ -552,15 +552,16 @@ | |||
else if ( ( a >> 16 ) == 0 ) | |||
{ | |||
/* compute result directly */ | |||
- q = (FT_UInt32)( (a << 16) + (b >> 1) ) / (FT_UInt32)b; | |||
+ q = (FT_UInt32)( ( a << 16 ) + ( b >> 1 ) ) / (FT_UInt32)b; | |||
} | |||
else | |||
{ | |||
/* we need more bits; we have to do it by hand */ | |||
FT_Int64 temp, temp2; | |||
- temp.hi = (FT_Int32) (a >> 16); | |||
- temp.lo = (FT_UInt32)(a << 16); | |||
+ | |||
+ temp.hi = (FT_Int32) ( a >> 16 ); | |||
+ temp.lo = (FT_UInt32)( a << 16 ); | |||
temp2.hi = 0; | |||
temp2.lo = (FT_UInt32)( b >> 1 ); | |||
FT_Add64( &temp, &temp2, &temp ); |
@@ -1,22 +0,0 @@ | |||
--- freetype-2.3.11/src/truetype/ttgload.c 2009-09-08 07:06:51.000000000 +0200 | |||
+++ freetype-2.3.11/src/truetype/ttgload.c 2012-03-28 12:01:04.000000000 +0200 | |||
@@ -267,14 +267,17 @@ | |||
if ( n_contours >= 0xFFF || p + ( n_contours + 1 ) * 2 > limit ) | |||
goto Invalid_Outline; | |||
- prev_cont = FT_NEXT_USHORT( p ); | |||
+ prev_cont = FT_NEXT_SHORT( p ); | |||
if ( n_contours > 0 ) | |||
cont[0] = prev_cont; | |||
+ if ( prev_cont < 0 ) | |||
+ goto Invalid_Outline; | |||
+ | |||
for ( cont++; cont < cont_limit; cont++ ) | |||
{ | |||
- cont[0] = FT_NEXT_USHORT( p ); | |||
+ cont[0] = FT_NEXT_SHORT( p ); | |||
if ( cont[0] <= prev_cont ) | |||
{ | |||
/* unordered contours: this is invalid */ |
@@ -1,17 +0,0 @@ | |||
--- freetype-2.3.11/src/bdf/bdflib.c 2013-01-15 09:57:36.000000000 +0100 | |||
+++ freetype-2.3.11/src/bdf/bdflib.c 2013-01-15 10:04:37.000000000 +0100 | |||
@@ -1588,9 +1588,11 @@ | |||
p->glyph_enc = _bdf_atol( p->list.field[1], 0, 10 ); | |||
- /* Check that the encoding is in the range [0,65536] because */ | |||
- /* otherwise p->have (a bitmap with static size) overflows. */ | |||
- if ( (size_t)p->glyph_enc >= sizeof ( p->have ) * 8 ) | |||
+ /* Check that the encoding is in the Unicode range because */ | |||
+ /* otherwise p->have (a bitmap with static size) overflows. */ | |||
+ if ( p->glyph_enc > 0 && | |||
+ (size_t)p->glyph_enc >= sizeof ( p->have ) / | |||
+ sizeof ( unsigned long ) * 32 ) | |||
{ | |||
error = BDF_Err_Invalid_File_Format; | |||
goto Exit; |
@@ -1,12 +0,0 @@ | |||
--- freetype-2.3.11/src/base/ftoutln.c 2009-03-14 14:45:26.000000000 +0100 | |||
+++ freetype-2.3.11/src/base/ftoutln.c 2012-04-03 11:03:35.000000000 +0200 | |||
@@ -990,7 +990,8 @@ | |||
int i; | |||
FT_Pos ray_y[3]; | |||
- FT_Orientation result[3]; | |||
+ FT_Orientation result[3] = | |||
+ { FT_ORIENTATION_NONE, FT_ORIENTATION_NONE, FT_ORIENTATION_NONE }; | |||
if ( !outline || outline->n_points <= 0 ) |
@@ -1,20 +0,0 @@ | |||
--- freetype-2.3.11/ft2demos-2.3.11/src/ftmulti.c 2010-07-22 19:11:50.000000000 +0200 | |||
+++ freetype-2.3.11/ft2demos-2.3.11/src/ftmulti.c 2010-07-22 19:12:41.000000000 +0200 | |||
@@ -813,13 +813,13 @@ | |||
for ( n = 0; n < (int)multimaster->num_axis; n++ ) | |||
{ | |||
- char temp[32]; | |||
+ char temp[100]; | |||
- sprintf( temp, " %s:%g", | |||
+ sprintf( temp, " %.50s:%g", | |||
multimaster->axis[n].name, | |||
- design_pos[n]/65536. ); | |||
- strcat( Header, temp ); | |||
+ design_pos[n] / 65536.0 ); | |||
+ strncat( Header, temp, sizeof( Header ) - strlen( Header ) - 1 ); | |||
} | |||
} | |||
grWriteCellString( &bit, 0, 16, Header, fore_color ); |
@@ -1,11 +0,0 @@ | |||
--- freetype-2.3.11/src/bdf/bdflib.c 2012-04-02 16:24:56.000000000 +0200 | |||
+++ freetype-2.3.11/src/bdf/bdflib.c 2012-04-02 16:25:33.000000000 +0200 | |||
@@ -1870,7 +1870,7 @@ | |||
glyph->bpr = ( glyph->bbx.width * p->font->bpp + 7 ) >> 3; | |||
bitmap_size = glyph->bpr * glyph->bbx.height; | |||
- if ( bitmap_size > 0xFFFFU ) | |||
+ if ( glyph->bpr > 0xFFFFU || bitmap_size > 0xFFFFU ) | |||
{ | |||
FT_ERROR(( "_bdf_parse_glyphs: " ERRMSG4, lineno )); | |||
error = BDF_Err_Bbx_Too_Big; |
@@ -1,18 +0,0 @@ | |||
diff -up freetype-2.3.11/ft2demos-2.3.11/Makefile.more-demos freetype-2.3.11/ft2demos-2.3.11/Makefile | |||
--- freetype-2.3.11/ft2demos-2.3.11/Makefile.more-demos 2009-10-22 16:02:26.000000000 -0400 | |||
+++ freetype-2.3.11/ft2demos-2.3.11/Makefile 2009-10-22 16:02:32.000000000 -0400 | |||
@@ -288,10 +288,10 @@ else | |||
# Note that ttdebug only works if the FreeType's `truetype' driver has | |||
# been compiled with TT_CONFIG_OPTION_BYTECODE_INTERPRETER defined. | |||
# | |||
- # EXES += ftchkwd | |||
- # EXES += ftmemchk | |||
- # EXES += ftpatchk | |||
- # EXES += fttimer | |||
+ EXES += ftchkwd | |||
+ EXES += ftmemchk | |||
+ EXES += ftpatchk | |||
+ EXES += fttimer | |||
# EXES += testname | |||
# EXES += ttdebug | |||
@@ -1,18 +0,0 @@ | |||
--- freetype-2.2.1/builds/unix/freetype-config.in.multilib 2006-07-27 18:50:40.000000000 -0400 | |||
+++ freetype-2.2.1/builds/unix/freetype-config.in 2006-07-27 18:58:13.000000000 -0400 | |||
@@ -9,11 +9,11 @@ | |||
# indicate that you have read the license and understand and accept it | |||
# fully. | |||
-prefix=@prefix@ | |||
-exec_prefix=@exec_prefix@ | |||
+prefix=`pkg-config --variable prefix freetype2` | |||
+exec_prefix=`pkg-config --variable exec_prefix freetype2` | |||
exec_prefix_set=no | |||
-includedir=@includedir@ | |||
-libdir=@libdir@ | |||
+includedir=`pkg-config --variable includedir freetype2` | |||
+libdir=`pkg-config --variable libdir freetype2` | |||
enable_shared=@build_libtool_libs@ | |||
wl=@wl@ | |||
hardcode_libdir_flag_spec='@hardcode_libdir_flag_spec@' |
@@ -1,8 +0,0 @@ | |||
prefix=@prefix@ | |||
exec_prefix=@exec_prefix@ | |||
libdir=@libdir@ | |||
Name: pthread stubs | |||
Description: Stubs missing from libc for standard pthread functions | |||
Version: 0.1 | |||
Libs: |
@@ -1,23 +0,0 @@ | |||
From 2b76d028b0253be7c4496840fcd2e0fb47c0794e Mon Sep 17 00:00:00 2001 | |||
From: Pierre Ossman <ossman@cendio.se> | |||
Date: Mon, 15 Dec 2014 10:52:43 +0100 | |||
Subject: [PATCH] Band aid to work around inluding C headers in C++ code | |||
--- | |||
unix/xserver/hw/vnc/Makefile.am | 3 +++ | |||
1 file changed, 3 insertions(+) | |||
diff --git a/unix/xserver/hw/vnc/Makefile.am b/unix/xserver/hw/vnc/Makefile.am | |||
index 9885b8a..372a57f 100644 | |||
--- a/unix/xserver/hw/vnc/Makefile.am | |||
+++ b/unix/xserver/hw/vnc/Makefile.am | |||
@@ -7,6 +7,9 @@ NETWORK_LIB=$(LIB_DIR)/network/libnetwork.la | |||
XREGION_LIB=$(LIB_DIR)/Xregion/libXregion.la | |||
COMMON_LIBS=$(NETWORK_LIB) $(RFB_LIB) $(RDR_LIB) $(XREGION_LIB) | |||
+# Hack to get the C headers to work when included from C++ code | |||
+AM_CXXFLAGS = -fpermissive | |||
+ | |||
noinst_LTLIBRARIES = libvnccommon.la | |||
HDRS = RegionHelper.h vncExtInit.h vncHooks.h XserverDesktop.h xorg-version.h \ |
@@ -1,103 +0,0 @@ | |||
From 0acffdd6f443198378012405e7f814f5abf278b3 Mon Sep 17 00:00:00 2001 | |||
From: Adam Tkac <atkac@redhat.com> | |||
Date: Wed, 15 Sep 2010 15:37:01 +0200 | |||
Subject: [PATCH] Add -dridir parameter to specify DRI drivers directory from command line. | |||
Signed-off-by: Adam Tkac <atkac@redhat.com> | |||
--- | |||
glx/glxdri.c | 2 -- | |||
glx/glxdri2.c | 2 -- | |||
glx/glxdriswrast.c | 2 -- | |||
glx/glxext.c | 27 +++++++++++++++++++++++++++ | |||
glx/glxserver.h | 3 +++ | |||
os/utils.c | 9 +++++++++ | |||
6 files changed, 39 insertions(+), 6 deletions(-) | |||
diff --git a/glx/glxext.c b/glx/glxext.c | |||
index 89e58b0..5e7cf23 100644 | |||
--- a/glx/glxext.c | |||
+++ b/glx/glxext.c | |||
@@ -608,3 +608,30 @@ static int __glXDispatch(ClientPtr client) | |||
return retval; | |||
} | |||
+ | |||
+char *dri_driver_path = DRI_DRIVER_PATH; | |||
+ | |||
+int GlxProcessArguments(int argc, char *argv[], int i) | |||
+{ | |||
+ if (strncmp(argv[i], "-dridir", 7) == 0) { | |||
+ if (++i < argc) { | |||
+#if !defined(WIN32) && !defined(__CYGWIN__) | |||
+ if (getuid() != geteuid()) { | |||
+ LogMessage(X_WARNING, "-dridir is not available for setuid X servers\n"); | |||
+ return -1; | |||
+ } else | |||
+#endif | |||
+ { | |||
+ if (strlen(argv[i]) < PATH_MAX) { | |||
+ dri_driver_path = argv[i]; | |||
+ return 2; | |||
+ } else { | |||
+ LogMessage(X_ERROR, "-dridir pathname too long\n"); | |||
+ return -1; | |||
+ } | |||
+ } | |||
+ } | |||
+ } | |||
+ | |||
+ return 0; | |||
+} | |||
diff --git a/glx/glxserver.h b/glx/glxserver.h | |||
index 1daf977..082ff82 100644 | |||
--- a/glx/glxserver.h | |||
+++ b/glx/glxserver.h | |||
@@ -251,4 +251,7 @@ extern unsigned glxMinorVersion; | |||
extern int __glXEventBase; | |||
+extern char *dri_driver_path; | |||
+extern int GlxProcessArguments(int argc, char *argv[], int i); | |||
+ | |||
#endif /* !__GLX_server_h__ */ | |||
diff --git a/glx/glxdricommon.c b/glx/glxdricommon.c | |||
--- a/glx/glxdricommon.c | |||
+++ b/glx/glxdricommon.c | |||
@@ -209,6 +209,4 @@ | |||
return head.next; | |||
} | |||
-static const char dri_driver_path[] = DRI_DRIVER_PATH; | |||
- | |||
void * | |||
glxProbeDriver(const char *driverName, | |||
diff --git a/os/utils.c b/os/utils.c | |||
index 13d3b3f..ff97c86 100644 | |||
--- a/os/utils.c | |||
+++ b/os/utils.c | |||
@@ -139,6 +139,7 @@ Bool noDPMSExtension = FALSE; | |||
#ifdef GLXEXT | |||
Bool noGlxExtension = FALSE; | |||
Bool noGlxVisualInit = FALSE; | |||
+extern int GlxProcessArguments(int argc, char *argv[], int i); | |||
#endif | |||
#ifdef SCREENSAVER | |||
Bool noScreenSaverExtension = FALSE; | |||
@@ -704,6 +705,14 @@ ProcessCommandLine(int argc, char *argv[]) | |||
else | |||
UseMsg(); | |||
} | |||
+#ifdef GLXEXT | |||
+ else if ((skip = GlxProcessArguments(argc,argv,i)) != 0) { | |||
+ if (skip > 0) | |||
+ i += skip - 1; | |||
+ else | |||
+ UseMsg(); | |||
+ } | |||
+#endif | |||
#ifdef RLIMIT_DATA | |||
else if (strcmp(argv[i], "-ld") == 0) { | |||
if (++i < argc) { | |||
1.7.3.2 | |||
@@ -1,46 +0,0 @@ | |||
From 5e6e99eaef3ca346c78a3e520ed58ec8b8100b41 Mon Sep 17 00:00:00 2001 | |||
From: Adam Tkac <atkac@redhat.com> | |||
Date: Thu, 2 Sep 2010 17:24:38 +0200 | |||
Subject: [PATCH] Add -xkbcompdir parameter to modify "xkbcomp" path from commandline. | |||
Signed-off-by: Adam Tkac <atkac@redhat.com> | |||
--- | |||
xkb/xkbInit.c | 21 +++++++++++++++++++++ | |||
1 files changed, 21 insertions(+), 0 deletions(-) | |||
diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c | |||
index fbf8f14..29fb33e 100644 | |||
--- a/xkb/xkbInit.c | |||
+++ b/xkb/xkbInit.c | |||
@@ -742,7 +742,28 @@ XkbProcessArguments(int argc,char *argv[],int i) | |||
} | |||
} | |||
return j; | |||
+ } else if (strncmp(argv[i], "-xkbcompdir", 11)==0) { | |||
+ if (++i < argc) { | |||
+#if !defined(WIN32) && !defined(__CYGWIN__) | |||
+ if (getuid() != geteuid()) { | |||
+ LogMessage(X_WARNING, "-xkbdir is not available for setuid X servers\n"); | |||
+ return -1; | |||
+ } else | |||
+#endif | |||
+ { | |||
+ if (strlen(argv[i]) < PATH_MAX) { | |||
+ XkbBinDirectory = argv[i]; | |||
+ return 2; | |||
+ } else { | |||
+ LogMessage(X_ERROR, "-xkbcompdir pathname too long\n"); | |||
+ return -1; | |||
+ } | |||
+ } | |||
+ } else { | |||
+ return -1; | |||
+ } | |||
} | |||
+ | |||
if ((strcmp(argv[i], "-ardelay") == 0) || (strcmp(argv[i], "-ar1") == 0)) { /* -ardelay int */ | |||
if (++i >= argc) | |||
UseMsg(); | |||
1.7.2.3 | |||
@@ -1,35 +0,0 @@ | |||
--- a/cmake/StaticBuild.cmake 2014-12-25 23:28:45.000000000 -0500 | |||
+++ b/cmake/StaticBuild.cmake 2015-01-01 18:18:36.000000000 -0500 | |||
@@ -82,10 +82,10 @@ | |||
if(${CMAKE_SYSTEM_NAME} MATCHES "SunOS") | |||
set(FLTK_LIBRARIES "${FLTK_LIBRARIES} ${X11_Xcursor_LIB} ${X11_Xfixes_LIB} -Wl,-Bstatic -lXft -Wl,-Bdynamic -lfontconfig -lXext -R/usr/sfw/lib") | |||
else() | |||
- set(FLTK_LIBRARIES "${FLTK_LIBRARIES} -Wl,-Bstatic -lXcursor -lXfixes -lXft -lfontconfig -lexpat -lfreetype -lbz2 -lXrender -lXext -lXinerama -Wl,-Bdynamic") | |||
+ set(FLTK_LIBRARIES "${FLTK_LIBRARIES} -Wl,-Bstatic -lXft -lfontconfig -lfreetype -lXcursor -lXfixes -lz -lbz2 -lXrender -lXinerama -lXext -lexpat -Wl,-Bdynamic") | |||
endif() | |||
- set(FLTK_LIBRARIES "${FLTK_LIBRARIES} -lX11") | |||
+ set(FLTK_LIBRARIES "${FLTK_LIBRARIES} -Wl,-Bdynamic -lX11 -Wl,-Bstatic -lxcb -lXdmcp -lXau -lICE -Wl,-Bdynamic -ldl") | |||
endif() | |||
endif() | |||
@@ -93,7 +93,7 @@ | |||
# them statically, even libXext. libX11 is somewhat stable, although | |||
# even it has had an ABI change once or twice. | |||
if(X11_FOUND AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS") | |||
- set(X11_LIBRARIES "-Wl,-Bstatic -lXext -Wl,-Bdynamic -lX11") | |||
+ set(X11_LIBRARIES "-Wl,-Bstatic -lXext -Wl,-Bdynamic -lX11 -Wl,-Bstatic -lxcb -lXdmcp -lXau -lICE -Wl,-Bdynamic -ldl -lpthread") | |||
if(X11_XTest_LIB) | |||
set(X11_XTest_LIB "-Wl,-Bstatic -lXtst -Wl,-Bdynamic") | |||
endif() | |||
--- a/vncviewer/CMakeLists.txt 2014-11-04 21:38:36.000000000 -0500 | |||
+++ b/vncviewer/CMakeLists.txt 2015-01-01 18:15:32.000000000 -0500 | |||
@@ -46,7 +46,7 @@ | |||
add_executable(vncviewer ${VNCVIEWER_SOURCES}) | |||
endif() | |||
-target_link_libraries(vncviewer rfb network rdr os Xregion ${FLTK_LIBRARIES} ${GETTEXT_LIBRARIES}) | |||
+target_link_libraries(vncviewer ${FLTK_LIBRARIES} rfb network rdr os Xregion ${GETTEXT_LIBRARIES}) | |||
if(APPLE) | |||
target_link_libraries(vncviewer "-framework Cocoa" "-framework Carbon") |
@@ -1,91 +0,0 @@ | |||
#!/bin/bash | |||
# | |||
# Init file for TigerVNC Server | |||
# | |||
# Written by Dag Wieers <dag@wieers.com> | |||
# | |||
# chkconfig: - 91 35 | |||
# description: TigerVNC remote X administration daemon. | |||
# | |||
# processname: Xvnc | |||
source /etc/rc.d/init.d/functions | |||
source /etc/sysconfig/network | |||
# Check that networking is up. | |||
[ ${NETWORKING} = "no" ] && exit 1 | |||
[ -x /usr/bin/Xvnc ] || exit 1 | |||
### Default variables | |||
SYSCONFIG="/etc/sysconfig/vncservers" | |||
VNCSERVERS="" | |||
### Read configuration | |||
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG" | |||
RETVAL=0 | |||
prog="Xvnc" | |||
desc="TigerVNC remote administration daemon" | |||
start() { | |||
echo -n $"Starting $desc ($prog):" | |||
ulimit -S -c 0 &>/dev/null | |||
for display in ${VNCSERVERS}; do | |||
echo -n "${display} " | |||
unset BASH_ENV ENV | |||
initlog $INITLOG_ARGS -c \ | |||
"su ${display##*:} -c \"cd ~${display##*:} && [ -f .vnc/passwd ] && vncserver :${display%:*} ${VNCSERVERARGS[${display%:*}]}\"" | |||
RETVAL=$? | |||
[ "$RETVAL" -ne 0 ] && break | |||
done | |||
[ "$RETVAL" -eq 0 ] && success $"vncserver startup" || failure $"vncserver start" | |||
echo | |||
[ "$RETVAL" -eq 0 ] && touch /var/lock/subsys/$prog | |||
return $RETVAL | |||
} | |||
stop() { | |||
echo -n $"Shutting down $desc ($prog): " | |||
for display in ${VNCSERVERS}; do | |||
echo -n "${display} " | |||
unset BASH_ENV ENV | |||
initlog $INITLOG_ARGS -c \ | |||
"su ${display##*:} -c \"vncserver -kill :${display%:*}\" &>/dev/null" | |||
done | |||
RETVAL=$? | |||
[ "$RETVAL" -eq 0 ] && success $"vncserver shutdown" || failure $"vncserver shutdown" | |||
echo | |||
[ "$RETVAL" -eq 0 ] && rm -f /var/lock/subsys/$prog | |||
return $RETVAL | |||
} | |||
restart() { | |||
stop | |||
start | |||
} | |||
case "$1" in | |||
start) | |||
start | |||
;; | |||
stop) | |||
stop | |||
;; | |||
restart|reload) | |||
restart | |||
;; | |||
condrestart) | |||
[ -e /var/lock/subsys/$prog ] && restart | |||
RETVAL=$? | |||
;; | |||
status) | |||
status $prog | |||
RETVAL=$? | |||
;; | |||
*) | |||
echo $"Usage: $0 {start|stop|restart|condrestart|status}" | |||
RETVAL=1 | |||
esac | |||
exit $RETVAL |
@@ -1,19 +0,0 @@ | |||
# The VNCSERVERS variable is a list of display:user pairs. | |||
# | |||
# Uncomment the lines below to start a VNC server on display :2 | |||
# as my 'myusername' (adjust this to your own). You will also | |||
# need to set a VNC password; run 'man vncpasswd' to see how | |||
# to do that. | |||
# | |||
# DO NOT RUN THIS SERVICE if your local area network is | |||
# untrusted! For a secure way of using VNC, see this URL: | |||
# http://kbase.redhat.com/faq/docs/DOC-7028 | |||
# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP. | |||
# Use "-localhost" to prevent remote VNC clients connecting except when | |||
# doing so through a secure tunnel. See the "-via" option in the | |||
# `man vncviewer' manual page. | |||
# VNCSERVERS="2:myusername" | |||
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost" |