Hello community,
here is the log from the commit of package libXext for openSUSE:Factory checked in at 2013-06-05 11:56:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libXext (Old)
and /work/SRC/openSUSE:Factory/.libXext.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libXext"
Changes:
--------
--- /work/SRC/openSUSE:Factory/libXext/libXext.changes 2013-03-22 11:55:04.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libXext.new/libXext.changes 2013-06-05 11:56:10.000000000 +0200
@@ -1,0 +2,9 @@
+Sat Jun 1 20:18:37 UTC 2013 - tobias.johannes.klausmann@mni.thm.de
+
+- Update to version 1.3.2:
+ This release provides fixes for the recently announced security issue
+ CVE-2013-1982, as well as build configuration improvements, man page
+ macro cleanups to work better with doclifter, and several other small
+ fixes.
+
+-------------------------------------------------------------------
Old:
----
libXext-1.3.1.tar.bz2
New:
----
libXext-1.3.2.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ libXext.spec ++++++
--- /var/tmp/diff_new_pack.FNXuIt/_old 2013-06-05 11:56:11.000000000 +0200
+++ /var/tmp/diff_new_pack.FNXuIt/_new 2013-06-05 11:56:11.000000000 +0200
@@ -18,7 +18,7 @@
Name: libXext
%define lname libXext6
-Version: 1.3.1
+Version: 1.3.2
Release: 0
Summary: Common extensions to the X11 protocol
License: MIT
++++++ libXext-1.3.1.tar.bz2 -> libXext-1.3.2.tar.bz2 ++++++
++++ 14143 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/COPYING new/libXext-1.3.2/COPYING
--- old/libXext-1.3.1/COPYING 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/COPYING 2013-05-31 23:35:08.000000000 +0200
@@ -160,7 +160,8 @@
of the information in this document. This documentation is
provided ``as is'' without express or implied warranty.
-Copyright (c) 1999, 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 1999, 2005, 2006, 2013, Oracle and/or its affiliates.
+All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/ChangeLog new/libXext-1.3.2/ChangeLog
--- old/libXext-1.3.1/ChangeLog 2012-03-08 05:01:08.000000000 +0100
+++ new/libXext-1.3.2/ChangeLog 2013-05-31 23:39:36.000000000 +0200
@@ -1,3 +1,180 @@
+commit d8366afbb0d2e4fbb1e419b1187f490522270bea
+Author: Alan Coopersmith
+Date: Fri May 31 14:34:58 2013 -0700
+
+ libXext 1.3.2
+
+ Signed-off-by: Alan Coopersmith
+
+commit dfe6e1f3b8ede3d0bab7a5fa57f73513a09ec649
+Author: Alan Coopersmith
+Date: Sat Mar 9 14:40:33 2013 -0800
+
+ integer overflow in XSyncListSystemCounters() [CVE-2013-1982 6/6]
+
+ If the number of counters or amount of data reported by the server is
+ large enough that it overflows when multiplied by the size of the
+ appropriate struct, then memory corruption can occur when more bytes
+ are read from the X server than the size of the buffers we allocated
+ to hold them.
+
+ V2: Make sure we don't walk past the end of the reply when converting
+ data from wire format to the structures returned to the caller.
+
+ Reported-by: Ilja Van Sprundel
+ Signed-off-by: Alan Coopersmith
+
+commit 6ecd96e8be3c33e2ffad6631cea4aa0a030d93c2
+Author: Alan Coopersmith
+Date: Sat Mar 9 14:40:33 2013 -0800
+
+ integer overflow in XShapeGetRectangles() [CVE-2013-1982 5/6]
+
+ If the number of rectangles reported by the server is large enough that
+ it overflows when multiplied by the size of the appropriate struct, then
+ memory corruption can occur when more bytes are read from the X server
+ than the size of the buffer we allocated to hold them.
+
+ Reported-by: Ilja Van Sprundel
+ Signed-off-by: Alan Coopersmith
+
+commit 67ecdcf7e29de9fa78b421122620525ed2c7db88
+Author: Alan Coopersmith
+Date: Sat Mar 9 14:40:33 2013 -0800
+
+ integer overflow in XeviGetVisualInfo() [CVE-2013-1982 4/6]
+
+ If the number of visuals or conflicts reported by the server is large
+ enough that it overflows when multiplied by the size of the appropriate
+ struct, then memory corruption can occur when more bytes are read from
+ the X server than the size of the buffer we allocated to hold them.
+
+ Reported-by: Ilja Van Sprundel
+ Signed-off-by: Alan Coopersmith
+
+commit 96d1da55a08c4cd52b763cb07bdce5cdcbec4da8
+Author: Alan Coopersmith
+Date: Sat Mar 9 14:40:33 2013 -0800
+
+ several integer overflows in XdbeGetVisualInfo() [CVE-2013-1982 3/6]
+
+ If the number of screens or visuals reported by the server is large enough
+ that it overflows when multiplied by the size of the appropriate struct,
+ then memory corruption can occur when more bytes are read from the X server
+ than the size of the buffer we allocated to hold them.
+
+ Reported-by: Ilja Van Sprundel
+ Signed-off-by: Alan Coopersmith
+
+commit 082d70b19848059ba78c9d1c315114fb07e8c0ef
+Author: Alan Coopersmith
+Date: Sat Mar 9 14:40:33 2013 -0800
+
+ integer overflow in XcupStoreColors() [CVE-2013-1982 2/6]
+
+ If the computed number of entries is large enough that it overflows when
+ multiplied by the size of a xColorItem struct, or is treated as negative
+ when compared to the size of the stack allocated buffer, then memory
+ corruption can occur when more bytes are read from the X server than the
+ size of the buffer we allocated to hold them.
+
+ The requirement to match the number of colors specified by the caller makes
+ this much harder to hit than the one in XcupGetReservedColormapEntries()
+
+ Reported-by: Ilja Van Sprundel
+ Signed-off-by: Alan Coopersmith
+
+commit d05f27a6f74cb419ad5a437f2e4690b17e7faee5
+Author: Alan Coopersmith
+Date: Sat Mar 9 14:40:33 2013 -0800
+
+ integer overflow in XcupGetReservedColormapEntries() [CVE-2013-1982 1/6]
+
+ If the computed number of entries is large enough that it overflows when
+ multiplied by the size of a xColorItem struct, or is treated as negative
+ when compared to the size of the stack allocated buffer, then memory
+ corruption can occur when more bytes are read from the X server than the
+ size of the buffer we allocated to hold them.
+
+ Reported-by: Ilja Van Sprundel
+ Signed-off-by: Alan Coopersmith
+
+commit ca84a813716f9de691dc3f60390d83af4b5ae534
+Author: Alan Coopersmith
+Date: Sat Apr 13 09:32:12 2013 -0700
+
+ Use _XEatDataWords to avoid overflow of rep.length bit shifting
+
+ rep.length is a CARD32, so rep.length << 2 could overflow in 32-bit builds
+
+ Signed-off-by: Alan Coopersmith
+
+commit 8eee1236041d46a21faba32e0d27c26985267d89
+Author: Colin Walters
+Date: Wed Jan 4 17:37:06 2012 -0500
+
+ autogen.sh: Implement GNOME Build API
+
+ http://people.gnome.org/~walters/docs/build-api.txt
+
+ Signed-off-by: Adam Jackson
+
+commit dbf4b9ec4a8aa97b0c47d58ee158dd3aa8832af5
+Author: Adam Jackson
+Date: Tue Jan 15 14:28:48 2013 -0500
+
+ configure: Remove AM_MAINTAINER_MODE
+
+ Signed-off-by: Adam Jackson
+
+commit 7081afc98643e3ef8a3ed711183c8fc8fef30cfa
+Author: Eric S. Raymond
+Date: Thu Aug 23 13:34:16 2012 -0400
+
+ Replace presentationm-level requests with .RS/RE.
+
+ This will assist translation to DocBook.
+
+ Signed-off-by: Eric S. Raymond
+
+commit d618eac132fc9e13bbfb9e58e3375f015db2a179
+Author: Eric S. Raymond
+Date: Thu Aug 23 13:25:27 2012 -0400
+
+ Replace various unsafe presentation-level requests with .RS/.RE and .EX/EE.
+
+ These can be translated structurally into DocBook.
+
+commit e78e51359fd22b69e646167bc9d3f9b28a5c755f
+Author: Thomas Klausner
+Date: Wed Jul 18 23:40:18 2012 +0200
+
+ Avoid having macros expand code to be: ((f) ? (f)->m1 : NULL)->m2
+
+ From Matthew R. Green
+
+ Signed-off-by: Thomas Klausner
+ Signed-off-by: Peter Hutterer
+
+commit ed8d50ba3a6f837d213ed7c39c2b63d33fc75a38
+Author: Chase Douglas
+Date: Fri Apr 20 15:08:08 2012 -0700
+
+ Destroy generic event extension after last display is removed
+
+ The extension record is currently leaked and never freed.
+
+ Signed-off-by: Chase Douglas
+ Signed-off-by: Peter Hutterer
+
+commit c6fc799a81334a223cf0e924cd9e7e94ba147835
+Author: Peter Hutterer
+Date: Mon Apr 23 14:59:51 2012 +1000
+
+ sync: fix copy/paste error in comment
+
+ Signed-off-by: Peter Hutterer
+
commit e9c1e346c90e697d5d8f0e756ef8b6e3ed339e29
Author: Alan Coopersmith
Date: Wed Mar 7 19:54:50 2012 -0800
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/config.h.in new/libXext-1.3.2/config.h.in
--- old/libXext-1.3.1/config.h.in 2012-03-08 04:55:13.000000000 +0100
+++ new/libXext-1.3.2/config.h.in 2013-05-31 23:35:18.000000000 +0200
@@ -30,6 +30,9 @@
/* Define to 1 if you have the header file. */
#undef HAVE_UNISTD_H
+/* Define to 1 if you have the `_XEatDataWords' function. */
+#undef HAVE__XEATDATAWORDS
+
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/configure.ac new/libXext-1.3.2/configure.ac
--- old/libXext-1.3.1/configure.ac 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/configure.ac 2013-05-31 23:35:08.000000000 +0200
@@ -1,14 +1,13 @@
# Initialize Autoconf
AC_PREREQ([2.60])
-AC_INIT([libXext], [1.3.1],
+AC_INIT([libXext], [1.3.2],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXext])
AC_CONFIG_SRCDIR([Makefile.am])
AC_CONFIG_HEADERS([config.h])
# Initialize Automake
AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
# Initialize libtool
AC_PROG_LIBTOOL
@@ -39,6 +38,12 @@
# Obtain compiler/linker options for depedencies
PKG_CHECK_MODULES(XEXT, [xproto >= 7.0.13] [x11 >= 1.1.99.1] [xextproto >= 7.1.99])
+# Check for _XEatDataWords function that may be patched into older Xlib releases
+SAVE_LIBS="$LIBS"
+LIBS="$XEXT_LIBS"
+AC_CHECK_FUNCS([_XEatDataWords])
+LIBS="$SAVE_LIBS"
+
# Allow checking code with lint, sparse, etc.
XORG_WITH_LINT
XORG_LINT_LIBRARY([Xext])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/include/X11/extensions/sync.h new/libXext-1.3.2/include/X11/extensions/sync.h
--- old/libXext-1.3.1/include/X11/extensions/sync.h 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/include/X11/extensions/sync.h 2013-05-31 23:35:08.000000000 +0200
@@ -203,7 +203,7 @@
} XSyncCounterNotifyEvent;
typedef struct {
- int type; /* event base + XSyncCounterNotify */
+ int type; /* event base + XSyncAlarmNotify */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/man/XShape.man new/libXext-1.3.2/man/XShape.man
--- old/libXext-1.3.1/man/XShape.man 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/man/XShape.man 2013-05-31 23:35:08.000000000 +0200
@@ -123,8 +123,7 @@
.fi
.SH STRUCTURES
.nf
-.LP
-.ta 3i
+.ft CW
typedef struct {
int type; /\&* of event */
unsigned long serial; /\&* # of last request processed by server */
@@ -137,38 +136,39 @@
Time time; /\&* server timestamp when region changed */
Bool shaped; /\&* true if the region exists */
} XShapeEvent;
+.ft
.fi
.SH DESCRIPTION
The \fIX11 Nonrectangular Window Shape Extension\fP adds nonrectangular
windows to the X Window System.
.SH PREDEFINED VALUES
Operations:
-.in +.5i
+.RS
.nf
.ZN ShapeSet
.ZN ShapeUnion
.ZN ShapeIntersect
.ZN ShapeSubtract
.ZN ShapeInvert
-.in -.5i
.fi
+.RE
.sp
Shape Kinds:
-.in +.5i
+.RS
.nf
.ZN ShapeBounding
.ZN ShapeClip
-.in -.5i
.fi
+.RE
.sp
Event defines:
-.in +.5i
+.RS
.nf
.ZN ShapeNotifyMask
.ZN ShapeNotify
-.in -.5i
.fi
+.RE
.SH BUGS
-This manual pages needs a lot more work.
+This manual page needs a lot more work.
.SH SEE ALSO
\fIX11 Nonrectangular Window Shape Extension\fP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/man/Xmbuf.man new/libXext-1.3.2/man/Xmbuf.man
--- old/libXext-1.3.1/man/Xmbuf.man 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/man/Xmbuf.man 2013-05-31 23:35:08.000000000 +0200
@@ -36,25 +36,32 @@
.ie t \fB\^\\$1\^\fR\\$2
.el \fI\^\\$1\^\fP\\$2
..
+.de EX
+.nf
+.ft CW
+..
+.de EE
+.ft
+.fi
+..
.TH XMBUF __libmansuffix__ __xorgversion__ "X FUNCTIONS"
.SH NAME
XmbufQueryExtension, XmbufGetVersion, XmbufCreateBuffers, XmbufDestroyBuffers, XmbufDisplayBuffers, XmbufGetWindowAttributes, XmbufChangeWindowAttributes, XmbufGetBufferAttributes, XmbufChangeBufferAttributes, XmbufGetScreenInfo, XmbufCreateStereoWindow - X multibuffering functions
.SH SYNTAX
-.nf
-.LP
+.EX
\include
-.LP
+
Bool XmbufQueryExtension(
Display *dpy,
Display *dpy,
int *event_base_return,
int *error_base_return);
-.LP
+
Status XmbufGetVersion(
Display *dpy,
int *major_version_return,
int *minor_version_return);
-.LP
+
int XmbufCreateBuffers(
Display *dpy,
Window window,
@@ -62,40 +69,40 @@
int update_action,
int update_hint,
Multibuffer *buffers_update);
-.LP
+
void XmbufDestroyBuffers(
Display *dpy,
Window window);
-.LP
+
void XmbufDisplayBuffers(
Display *dpy,
int count,
Multibuffer *buffers,
int min_delay,
int max_delay);
-.LP
+
Status XmbufGetWindowAttributes(
Display *dpy,
Window window,
XmbufWindowAttributes *attributes);
-.LP
+
void XmbufChangeWindowAttributes(
Display *dpy,
Window window,
unsigned long valuemask,
XmbufSetWindowAttributes *attributes);
-.LP
+
Status XmbufGetBufferAttributes(
Display *dpy,
Multibuffer buffer,
XmbufBufferAttributes *attributes);
-.LP
+
void XmbufChangeBufferAttributes(
Display *dpy,
Multibuffer buffer,
unsigned long valuemask,
XmbufSetBufferAttributes *attributes);
-.LP
+
Status XmbufGetScreenInfo(
Display *dpy,
Drawable drawable,
@@ -103,7 +110,7 @@
XmbufBufferInfo **mono_info_return,
int *nstereo_return,
XmbufBufferInfo **stereo_info_return);
-.LP
+
Window XmbufCreateStereoWindow(
Display *dpy,
Window parent,
@@ -119,29 +126,31 @@
XSetWindowAttributes *attributes,
Multibuffer *left_return,
Multibuffer *right_return);
-.fi
+.EE
.SH STRUCTURES
-.nf
-.ta 3i
\fIEvents:\fP
+.EX
typedef struct {
- int type; /\&* of event */
- unsigned long serial; /\&* # of last request processed by server */
- int send_event; /\&* true if this came from a SendEvent request */
- Display *display; /\&* Display the event was read from */
- Multibuffer buffer; /\&* buffer of event */
- int state; /\&* see Clobbered constants above */
+ int type; /\&* of event */
+ unsigned long serial; /\&* # of last request processed by server */
+ int send_event; /\&* true if this came from a SendEvent request */
+ Display *display; /\&* Display the event was read from */
+ Multibuffer buffer; /\&* buffer of event */
+ int state; /\&* see Clobbered constants above */
} XmbufClobberNotifyEvent;
-.LP
+
typedef struct {
- int type; /\&* of event */
- unsigned long serial; /\&* # of last request processed by server */
- int send_event; /\&* true if this came from a SendEvent request */
- Display *display; /\&* Display the event was read from */
- Multibuffer buffer; /\&* buffer of event */
+ int type; /\&* of event */
+ unsigned long serial; /\&* # of last request processed by server */
+ int send_event; /\&* true if this came from a SendEvent request */
+ Display *display; /\&* Display the event was read from */
+ Multibuffer buffer; /\&* buffer of event */
} XmbufUpdateNotifyEvent;
-.LP
+.EE
+
\fIPer-window attributes that can be got:\fP
+
+.EX
typedef struct {
int displayed_index; /\&* which buffer is being displayed */
int update_action; /\&* Undefined, Background, Untouched, Copied */
@@ -150,32 +159,44 @@
int nbuffers; /\&* Number of buffers */
Multibuffer *buffers; /\&* Buffers */
} XmbufWindowAttributes;
-.LP
+.EE
+
\fIPer-window attributes that can be set:\fP
+
+.EX
typedef struct {
int update_hint; /\&* Frequent, Intermittent, Static */
} XmbufSetWindowAttributes;
-.LP
+.EE
+
\fIPer-buffer attributes that can be got:\fP
+
+.EX
typedef struct {
Window window; /\&* which window this belongs to */
unsigned long event_mask; /\&* events that have been selected */
int buffer_index; /\&* which buffer is this */
int side; /\&* Mono, Left, Right */
} XmbufBufferAttributes;
-.LP
+.EE
+
\fIPer-buffer attributes that can be set:\fP
+
+.EX
typedef struct {
unsigned long event_mask; /\&* events that have been selected */
} XmbufSetBufferAttributes;
-.LP
+.EE
+
\fIPer-screen buffer info (there will be lists of them):\fP
+
+.EX
typedef struct {
VisualID visualid; /\&* visual usable at this depth */
int max_buffers; /\&* most buffers for this visual */
int depth; /\&* depth of buffers to be created */
} XmbufBufferInfo;
-.fi
+.EE
.SH DESCRIPTION
The application programming library for the
\fIX11 Double-Buffering, Multi-Buffering, and Stereo Extension\fP
@@ -279,54 +300,54 @@
.SH PREDEFINED VALUES
.sp
Update_action field:
-.in +.5i
+.RS
.nf
.ZN MultibufferUpdateActionUndefined
.ZN MultibufferUpdateActionBackground
.ZN MultibufferUpdateActionUntouched
.ZN MultibufferUpdateActionCopied
-.in -.5i
.fi
+.RE
.sp
Update_hint field:
-.in +.5i
+.RS
.nf
.ZN MultibufferUpdateHintFrequent
.ZN MultibufferUpdateHintIntermittent
.ZN MultibufferUpdateHintStatic
-.in -.5i
-.sp
.fi
+.RE
+.sp
Valuemask fields:
-.in +.5i
+.RS
.nf
.ZN MultibufferWindowUpdateHint
.ZN MultibufferBufferEventMask
-.in -.5i
.fi
+.RE
.sp
Mono vs. stereo and left vs. right:
-.in +.5i
+.RS
.nf
.ZN MultibufferModeMono
.ZN MultibufferModeStereo
.ZN MultibufferSideMono
.ZN MultibufferSideLeft
.ZN MultibufferSideRight
-.in -.5i
.fi
+.RE
.sp
Clobber state:
-.in +.5i
+.RS
.nf
.ZN MultibufferUnclobbered
.ZN MultibufferPartiallyClobbered
.ZN MultibufferFullyClobbered
-.in -.5i
.fi
+.RE
.sp
Event stuff:
-.in +.5i
+.RS
.nf
.ZN MultibufferClobberNotifyMask
.ZN MultibufferUpdateNotifyMask
@@ -335,8 +356,8 @@
.ZN MultibufferNumberEvents
.ZN MultibufferBadBuffer
.ZN MultibufferNumberErrors
-.in -.5i
.fi
+.RE
.SH BUGS
This manual page needs more work.
.SH SEE ALSO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/missing new/libXext-1.3.2/missing
--- old/libXext-1.3.1/missing 2012-03-08 04:55:14.000000000 +0100
+++ new/libXext-1.3.2/missing 2013-05-31 23:35:22.000000000 +0200
@@ -1,11 +1,10 @@
#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2012-06-26.16; # UTC
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard , 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard , 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -26,69 +25,40 @@
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
- echo 1>&2 "Try \`$0 --help' for more information"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
- configure_ac=configure.ac
-else
- configure_ac=configure.in
-fi
+case $1 in
-msg="missing on your system"
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
-case $1 in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- # Exit code 63 means version mismatch. This often happens
- # when the user try to use an ancient version of a tool on
- # a file that requires a minimum version. In this case we
- # we should proceed has if the program had been absent, or
- # if --run hadn't been passed.
- if test $? = 63; then
- run=:
- msg="probably too old"
- fi
- ;;
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
- --run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
- aclocal touch file \`aclocal.m4'
- autoconf touch file \`configure'
- autoheader touch file \`config.h.in'
- autom4te touch the output file, or create a stub one
- automake touch all \`Makefile.in' files
- bison create \`y.tab.[ch]', if possible, from existing .[ch]
- flex create \`lex.yy.c', if possible, from existing .c
- help2man touch the output file
- lex create \`lex.yy.c', if possible, from existing .c
- makeinfo touch the output file
- tar try tar, gnutar, gtar, then tar without non-portable flags
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
-Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-\`g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
Send bug reports to ."
exit $?
@@ -100,272 +70,141 @@
;;
-*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
+ echo 1>&2 "$0: unknown '$1' option"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
-# normalize program name to check for.
-program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
-# Now exit if we have it, but it failed. Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program). This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
- lex*|yacc*)
- # Not GNU programs, they don't have --version.
- ;;
-
- tar*)
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- exit 1
- fi
- ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
- *)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- # Could not run --version or --help. This is probably someone
- # running `$TOOL --version' or `$TOOL --help' to check whether
- # $TOOL exists and not knowing $TOOL uses missing.
- exit 1
- fi
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
- aclocal*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acinclude.m4' or \`${configure_ac}'. You might want
- to install the \`Automake' and \`Perl' packages. Grab them from
- any GNU archive site."
- touch aclocal.m4
- ;;
-
- autoconf*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`${configure_ac}'. You might want to install the
- \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
- archive site."
- touch configure
- ;;
-
- autoheader*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`acconfig.h' or \`${configure_ac}'. You might want
- to install the \`Autoconf' and \`GNU m4' packages. Grab them
- from any GNU archive site."
- files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
- test -z "$files" && files="config.h"
- touch_files=
- for f in $files; do
- case $f in
- *:*) touch_files="$touch_files "`echo "$f" |
- sed -e 's/^[^:]*://' -e 's/:.*//'`;;
- *) touch_files="$touch_files $f.in";;
- esac
- done
- touch $touch_files
- ;;
-
- automake*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
- You might want to install the \`Automake' and \`Perl' packages.
- Grab them from any GNU archive site."
- find . -type f -name Makefile.am -print |
- sed 's/\.am$/.in/' |
- while read f; do touch "$f"; done
- ;;
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
- autom4te*)
- echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
- You might have modified some files without having the
- proper tools for further handling them.
- You can get \`$1' as part of \`Autoconf' from any GNU
- archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison*|yacc*)
- echo 1>&2 "\
-WARNING: \`$1' $msg. You should only need it if
- you modified a \`.y' file. You may need the \`Bison' package
- in order for those modifications to take effect. You can get
- \`Bison' from any GNU archive site."
- rm -f y.tab.c y.tab.h
- if test $# -ne 1; then
- eval LASTARG="\${$#}"
- case $LASTARG in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if test ! -f y.tab.h; then
- echo >y.tab.h
- fi
- if test ! -f y.tab.c; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex*|flex*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.l' file. You may need the \`Flex' package
- in order for those modifications to take effect. You can get
- \`Flex' from any GNU archive site."
- rm -f lex.yy.c
- if test $# -ne 1; then
- eval LASTARG="\${$#}"
- case $LASTARG in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if test ! -f lex.yy.c; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a dependency of a manual page. You may need the
- \`Help2man' package in order for those modifications to take
- effect. You can get \`Help2man' from any GNU archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit $?
- fi
- ;;
-
- makeinfo*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. You should only need it if
- you modified a \`.texi' or \`.texinfo' file, or any other file
- indirectly affecting the aspect of the manual. The spurious
- call might also be the consequence of using a buggy \`make' (AIX,
- DU, IRIX). You might want to install the \`Texinfo' package or
- the \`GNU make' package. Grab either from any GNU archive site."
- # The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -z "$file"; then
- # ... or it is the one specified with @setfilename ...
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '
- /^@setfilename/{
- s/.* \([^ ]*\) *$/\1/
- p
- q
- }' $infile`
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
- fi
- # If the file does not exist, the user really needs makeinfo;
- # let's fail without touching anything.
- test -f $file || exit 1
- touch $file
- ;;
-
- tar*)
- shift
-
- # We have already tried tar in the generic part.
- # Look for gnutar/gtar before invocation to avoid ugly error
- # messages.
- if (gnutar --version > /dev/null 2>&1); then
- gnutar "$@" && exit 0
- fi
- if (gtar --version > /dev/null 2>&1); then
- gtar "$@" && exit 0
- fi
- firstarg="$1"
- if shift; then
- case $firstarg in
- *o*)
- firstarg=`echo "$firstarg" | sed s/o//`
- tar "$firstarg" "$@" && exit 0
- ;;
- esac
- case $firstarg in
- *h*)
- firstarg=`echo "$firstarg" | sed s/h//`
- tar "$firstarg" "$@" && exit 0
- ;;
- esac
- fi
-
- echo 1>&2 "\
-WARNING: I can't seem to be able to run \`tar' with the given arguments.
- You may want to install GNU tar or Free paxutils, or check the
- command line arguments."
- exit 1
- ;;
-
- *)
- echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
- You might have modified some files without having the
- proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequisites for installing
- this package. You may also peek at any GNU archive site, in case
- some other package would contain this missing \`$1' program."
- exit 1
- ;;
-esac
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
-exit 0
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'automa4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
+ ;;
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/src/Makefile.am new/libXext-1.3.2/src/Makefile.am
--- old/libXext-1.3.1/src/Makefile.am 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/src/Makefile.am 2013-05-31 23:35:08.000000000 +0200
@@ -12,6 +12,7 @@
libXext_la_LIBADD = $(XEXT_LIBS)
libXext_la_SOURCES = \
+ eat.h \
DPMS.c \
MITMisc.c \
XAppgroup.c \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/src/XEVI.c new/libXext-1.3.2/src/XEVI.c
--- old/libXext-1.3.1/src/XEVI.c 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/src/XEVI.c 2013-05-31 23:35:08.000000000 +0200
@@ -30,6 +30,9 @@
#include
#include
#include
+#include
+#include "eat.h"
+
static XExtensionInfo *xevi_info;/* needs to move to globals.c */
static const char *xevi_extension_name = EVINAME;
#define XeviCheckExtension(dpy,i,val) \
@@ -163,15 +166,22 @@
return BadAccess;
}
Xfree(temp_visual);
- sz_info = rep.n_info * sizeof(ExtendedVisualInfo);
- sz_xInfo = rep.n_info * sz_xExtendedVisualInfo;
- sz_conflict = rep.n_conflicts * sizeof(VisualID);
- sz_xConflict = rep.n_conflicts * sz_VisualID32;
- infoPtr = *evi_return = (ExtendedVisualInfo *)Xmalloc(sz_info + sz_conflict);
- xInfoPtr = temp_xInfo = (xExtendedVisualInfo *)Xmalloc(sz_xInfo);
- xConflictPtr = temp_conflict = (VisualID32 *)Xmalloc(sz_xConflict);
+ if ((rep.n_info < 65536) && (rep.n_conflicts < 65536)) {
+ sz_info = rep.n_info * sizeof(ExtendedVisualInfo);
+ sz_xInfo = rep.n_info * sz_xExtendedVisualInfo;
+ sz_conflict = rep.n_conflicts * sizeof(VisualID);
+ sz_xConflict = rep.n_conflicts * sz_VisualID32;
+ *evi_return = Xmalloc(sz_info + sz_conflict);
+ temp_xInfo = Xmalloc(sz_xInfo);
+ temp_conflict = Xmalloc(sz_xConflict);
+ } else {
+ sz_xInfo = sz_xConflict = 0;
+ *evi_return = NULL;
+ temp_xInfo = NULL;
+ temp_conflict = NULL;
+ }
if (!*evi_return || !temp_xInfo || !temp_conflict) {
- _XEatData(dpy, (sz_xInfo + sz_xConflict + 3) & ~3);
+ _XEatDataWords(dpy, rep.length);
UnlockDisplay(dpy);
SyncHandle();
if (evi_return)
@@ -186,6 +196,9 @@
_XRead(dpy, (char *)temp_conflict, sz_xConflict);
UnlockDisplay(dpy);
SyncHandle();
+ infoPtr = *evi_return;
+ xInfoPtr = temp_xInfo;
+ xConflictPtr = temp_conflict;
n_data = rep.n_info;
conflict = (VisualID *)(infoPtr + n_data);
while (n_data-- > 0) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/src/XMultibuf.c new/libXext-1.3.2/src/XMultibuf.c
--- old/libXext-1.3.1/src/XMultibuf.c 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/src/XMultibuf.c 2013-05-31 23:35:08.000000000 +0200
@@ -34,6 +34,7 @@
#include
#include
#include
+#include "eat.h"
static XExtensionInfo _multibuf_info_data;
static XExtensionInfo *multibuf_info = &_multibuf_info_data;
@@ -408,7 +409,7 @@
attr->buffers = (Multibuffer *) Xmalloc((unsigned) nbytes);
nbytes = rep.length << 2;
if (! attr->buffers) {
- _XEatData(dpy, (unsigned long) nbytes);
+ _XEatDataWords(dpy, rep.length);
UnlockDisplay(dpy);
SyncHandle();
return (0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/src/XSecurity.c new/libXext-1.3.2/src/XSecurity.c
--- old/libXext-1.3.1/src/XSecurity.c 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/src/XSecurity.c 2013-05-31 23:35:08.000000000 +0200
@@ -33,6 +33,7 @@
#include
#include
#include
+#include "eat.h"
static XExtensionInfo _Security_info_data;
static XExtensionInfo *Security_info = &_Security_info_data;
@@ -282,7 +283,7 @@
}
else
{
- _XEatData(dpy, (unsigned long) (rep.dataLength + 3) & ~3);
+ _XEatDataWords(dpy, rep.length);
}
UnlockDisplay (dpy);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/src/XShape.c new/libXext-1.3.2/src/XShape.c
--- old/libXext-1.3.1/src/XShape.c 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/src/XShape.c 2013-05-31 23:35:08.000000000 +0200
@@ -35,6 +35,8 @@
#include
#include
#include
+#include
+#include "eat.h"
static XExtensionInfo _shape_info_data;
static XExtensionInfo *shape_info = &_shape_info_data;
@@ -442,7 +444,7 @@
xShapeGetRectanglesReply rep;
XRectangle *rects;
xRectangle *xrects;
- int i;
+ unsigned int i;
ShapeCheckExtension (dpy, info, (XRectangle *)NULL);
@@ -460,20 +462,23 @@
*count = rep.nrects;
*ordering = rep.ordering;
rects = NULL;
- if (*count) {
- xrects = (xRectangle *) Xmalloc (*count * sizeof (xRectangle));
- rects = (XRectangle *) Xmalloc (*count * sizeof (XRectangle));
+ if (rep.nrects) {
+ if (rep.nrects < (INT_MAX / sizeof (XRectangle))) {
+ xrects = Xmalloc (rep.nrects * sizeof (xRectangle));
+ rects = Xmalloc (rep.nrects * sizeof (XRectangle));
+ } else {
+ xrects = NULL;
+ rects = NULL;
+ }
if (!xrects || !rects) {
- if (xrects)
- Xfree (xrects);
- if (rects)
- Xfree (rects);
- _XEatData (dpy, *count * sizeof (xRectangle));
+ Xfree (xrects);
+ Xfree (rects);
+ _XEatDataWords (dpy, rep.length);
rects = NULL;
*count = 0;
} else {
- _XRead (dpy, (char *) xrects, *count * sizeof (xRectangle));
- for (i = 0; i < *count; i++) {
+ _XRead (dpy, (char *) xrects, rep.nrects * sizeof (xRectangle));
+ for (i = 0; i < rep.nrects; i++) {
rects[i].x = (short) cvtINT16toInt (xrects[i].x);
rects[i].y = (short) cvtINT16toInt (xrects[i].y);
rects[i].width = xrects[i].width;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/src/XSync.c new/libXext-1.3.2/src/XSync.c
--- old/libXext-1.3.1/src/XSync.c 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/src/XSync.c 2013-05-31 23:35:08.000000000 +0200
@@ -59,6 +59,8 @@
#include
#include
#include
+#include
+#include "eat.h"
static XExtensionInfo _sync_info_data;
static XExtensionInfo *sync_info = &_sync_info_data;
@@ -107,8 +109,8 @@
};
#define NUM_VERSIONS (sizeof(supported_versions)/sizeof(supported_versions[0]))
-#define GET_VERSION(info) ((info) ? (const SyncVersionInfo*)(info)->data : NULL)
-#define IS_VERSION_SUPPORTED(info) (!!GET_VERSION(info))
+#define GET_VERSION(info) ((const SyncVersionInfo*)(info)->data)
+#define IS_VERSION_SUPPORTED(info) (!!(info))
static
const SyncVersionInfo* GetVersionInfo(Display *dpy)
@@ -351,20 +353,29 @@
if (rep.nCounters > 0)
{
xSyncSystemCounter *pWireSysCounter, *pNextWireSysCounter;
+ xSyncSystemCounter *pLastWireSysCounter;
XSyncCounter counter;
- int replylen;
+ unsigned int replylen;
int i;
- list = Xmalloc(rep.nCounters * sizeof(XSyncSystemCounter));
- replylen = rep.length << 2;
- pWireSysCounter = Xmalloc ((unsigned) replylen + sizeof(XSyncCounter));
- /* +1 to leave room for last counter read-ahead */
+ if (rep.nCounters < (INT_MAX / sizeof(XSyncSystemCounter)))
+ list = Xmalloc(rep.nCounters * sizeof(XSyncSystemCounter));
+ if (rep.length < (INT_MAX >> 2)) {
+ replylen = rep.length << 2;
+ pWireSysCounter = Xmalloc (replylen + sizeof(XSyncCounter));
+ /* +1 to leave room for last counter read-ahead */
+ pLastWireSysCounter = (xSyncSystemCounter *)
+ ((char *)pWireSysCounter) + replylen;
+ } else {
+ replylen = 0;
+ pWireSysCounter = NULL;
+ }
if ((!list) || (!pWireSysCounter))
{
- if (list) Xfree((char *) list);
- if (pWireSysCounter) Xfree((char *) pWireSysCounter);
- _XEatData(dpy, (unsigned long) replylen);
+ Xfree(list);
+ Xfree(pWireSysCounter);
+ _XEatDataWords(dpy, rep.length);
list = NULL;
goto bail;
}
@@ -387,6 +398,14 @@
pNextWireSysCounter = (xSyncSystemCounter *)
(((char *)pWireSysCounter) + ((SIZEOF(xSyncSystemCounter) +
pWireSysCounter->name_length + 3) & ~3));
+ /* Make sure we haven't gone too far */
+ if (pNextWireSysCounter > pLastWireSysCounter) {
+ Xfree(list);
+ Xfree(pWireSysCounter);
+ list = NULL;
+ goto bail;
+ }
+
counter = pNextWireSysCounter->counter;
list[i].name = ((char *)pWireSysCounter) +
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/src/Xcup.c new/libXext-1.3.2/src/Xcup.c
--- old/libXext-1.3.1/src/Xcup.c 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/src/Xcup.c 2013-05-31 23:35:08.000000000 +0200
@@ -36,6 +36,8 @@
#include
#include
#include
+#include
+#include "eat.h"
static XExtensionInfo _xcup_info_data;
static XExtensionInfo *xcup_info = &_xcup_info_data;
@@ -133,18 +135,22 @@
req->xcupReqType = X_XcupGetReservedColormapEntries;
req->screen = screen;
if (_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
- long nbytes;
+ unsigned long nbytes;
xColorItem* rbufp;
- int nentries = rep.length / 3;
+ unsigned int nentries = rep.length / 3;
- nbytes = nentries * SIZEOF (xColorItem);
- if (nentries > TYP_RESERVED_ENTRIES)
- rbufp = (xColorItem*) Xmalloc (nbytes);
- else
- rbufp = rbuf;
+ if (nentries < (INT_MAX / SIZEOF (xColorItem))) {
+ nbytes = nentries * SIZEOF (xColorItem);
+
+ if (nentries > TYP_RESERVED_ENTRIES)
+ rbufp = Xmalloc (nbytes);
+ else
+ rbufp = rbuf;
+ } else
+ rbufp = NULL;
if (rbufp == NULL) {
- _XEatData (dpy, (unsigned long) nbytes);
+ _XEatDataWords(dpy, rep.length);
UnlockDisplay (dpy);
SyncHandle ();
return False;
@@ -213,27 +219,24 @@
}
if (_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
- long nbytes;
+ unsigned long nbytes;
xColorItem* rbufp;
xColorItem* cs;
- int nentries = rep.length / 3;
-
- nbytes = nentries * SIZEOF (xColorItem);
-
- if (nentries != ncolors) {
- _XEatData (dpy, (unsigned long) nbytes);
- UnlockDisplay (dpy);
- SyncHandle ();
- return False;
- }
+ unsigned int nentries = rep.length / 3;
- if (ncolors > 256)
- rbufp = (xColorItem*) Xmalloc (nbytes);
- else
- rbufp = rbuf;
+ if ((nentries == ncolors) &&
+ (nentries < (INT_MAX / SIZEOF (xColorItem)))) {
+ nbytes = nentries * SIZEOF (xColorItem);
+
+ if (ncolors > 256)
+ rbufp = Xmalloc (nbytes);
+ else
+ rbufp = rbuf;
+ } else
+ rbufp = NULL;
if (rbufp == NULL) {
- _XEatData (dpy, (unsigned long) nbytes);
+ _XEatDataWords(dpy, rep.length);
UnlockDisplay (dpy);
SyncHandle ();
return False;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/src/Xdbe.c new/libXext-1.3.2/src/Xdbe.c
--- old/libXext-1.3.1/src/Xdbe.c 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/src/Xdbe.c 2013-05-31 23:35:08.000000000 +0200
@@ -39,6 +39,8 @@
#include
#include
#include
+#include
+#include "eat.h"
static XExtensionInfo _dbe_info_data;
static XExtensionInfo *dbe_info = &_dbe_info_data;
@@ -352,9 +354,12 @@
*num_screens = rep.m;
/* allocate list of visual information to be returned */
- if (!(scrVisInfo =
- (XdbeScreenVisualInfo *)Xmalloc(
- (unsigned)(*num_screens * sizeof(XdbeScreenVisualInfo))))) {
+ if ((*num_screens > 0) && (*num_screens < 65536))
+ scrVisInfo = Xmalloc(*num_screens * sizeof(XdbeScreenVisualInfo));
+ else
+ scrVisInfo = NULL;
+ if (scrVisInfo == NULL) {
+ _XEatDataWords(dpy, rep.length);
UnlockDisplay (dpy);
SyncHandle ();
return NULL;
@@ -362,25 +367,27 @@
for (i = 0; i < *num_screens; i++)
{
- int nbytes;
int j;
- long c;
+ unsigned long c;
- _XRead32 (dpy, &c, sizeof(CARD32));
- scrVisInfo[i].count = c;
+ _XRead32 (dpy, (long *) &c, sizeof(CARD32));
- nbytes = scrVisInfo[i].count * sizeof(XdbeVisualInfo);
+ if (c < 65536) {
+ scrVisInfo[i].count = c;
+ scrVisInfo[i].visinfo = Xmalloc(c * sizeof(XdbeVisualInfo));
+ } else
+ scrVisInfo[i].visinfo = NULL;
/* if we can not allocate the list of visual/depth info
* then free the lists that we already allocate as well
* as the visual info list itself
*/
- if (!(scrVisInfo[i].visinfo = (XdbeVisualInfo *)Xmalloc(
- (unsigned)nbytes))) {
+ if (scrVisInfo[i].visinfo == NULL) {
for (j = 0; j < i; j++) {
Xfree ((char *)scrVisInfo[j].visinfo);
}
Xfree ((char *)scrVisInfo);
+ _XEatDataWords(dpy, rep.length);
UnlockDisplay (dpy);
SyncHandle ();
return NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/src/Xge.c new/libXext-1.3.2/src/Xge.c
--- old/libXext-1.3.1/src/Xge.c 2012-03-08 04:54:58.000000000 +0100
+++ new/libXext-1.3.2/src/Xge.c 2013-05-31 23:35:08.000000000 +0200
@@ -218,7 +218,15 @@
XFree(xge_data);
}
- return XextRemoveDisplay(xge_info, dpy);
+ if(!XextRemoveDisplay(xge_info, dpy))
+ return 0;
+
+ if (xge_info->ndisplays == 0) {
+ XextDestroyExtension(xge_info);
+ xge_info = NULL;
+ }
+
+ return 1;
}
/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/libXext-1.3.1/src/eat.h new/libXext-1.3.2/src/eat.h
--- old/libXext-1.3.1/src/eat.h 1970-01-01 01:00:00.000000000 +0100
+++ new/libXext-1.3.2/src/eat.h 2013-05-31 23:35:08.000000000 +0200
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) 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 AUTHORS OR COPYRIGHT HOLDERS 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.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#ifndef HAVE__XEATDATAWORDS
+#include /* for LONG64 on 64-bit platforms */
+#include
+
+static inline void _XEatDataWords(Display *dpy, unsigned long n)
+{
+# ifndef LONG64
+ if (n >= (ULONG_MAX >> 2))
+ _XIOError(dpy);
+# endif
+ _XEatData (dpy, n << 2);
+}
+#endif
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org