diff options
Diffstat (limited to 'main/libxp/0002-Use-_XEatDataWords-to-avoid-overflow-of-rep.length-b.patch')
-rw-r--r-- | main/libxp/0002-Use-_XEatDataWords-to-avoid-overflow-of-rep.length-b.patch | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/main/libxp/0002-Use-_XEatDataWords-to-avoid-overflow-of-rep.length-b.patch b/main/libxp/0002-Use-_XEatDataWords-to-avoid-overflow-of-rep.length-b.patch new file mode 100644 index 0000000000..fa61ef587f --- /dev/null +++ b/main/libxp/0002-Use-_XEatDataWords-to-avoid-overflow-of-rep.length-b.patch @@ -0,0 +1,59 @@ +From 15ec6d1d0bb8c4cb24a190ed34e63312a0623670 Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Fri, 3 May 2013 22:30:36 -0700 +Subject: [PATCH 2/5] 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 <alan.coopersmith@oracle.com> +--- + configure.ac | 6 ++++++ + src/XpExtUtil.h | 14 ++++++++++++++ + 2 files changed, 20 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 50b029c..16b966c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -45,6 +45,12 @@ AC_PROG_LIBTOOL + # Check for X and print proto + PKG_CHECK_MODULES(XPRINT, x11 xext xextproto xau printproto) + ++# Check for _XEatDataWords function that may be patched into older Xlib release ++SAVE_LIBS="$LIBS" ++LIBS="$XPRINT_LIBS" ++AC_CHECK_FUNCS([_XEatDataWords]) ++LIBS="$SAVE_LIBS" ++ + AC_CONFIG_FILES([Makefile + src/Makefile + man/Makefile +diff --git a/src/XpExtUtil.h b/src/XpExtUtil.h +index d479a95..1889825 100644 +--- a/src/XpExtUtil.h ++++ b/src/XpExtUtil.h +@@ -48,6 +48,20 @@ extern char *_xpstrdup( + const char * /* str */ + ); + ++#ifndef HAVE__XEATDATAWORDS ++#include <X11/Xmd.h> /* for LONG64 on 64-bit platforms */ ++#include <limits.h> ++ ++static inline void _XEatDataWords(Display *dpy, unsigned long n) ++{ ++# ifndef LONG64 ++ if (n >= (ULONG_MAX >> 2)) ++ _XIOError(dpy); ++# endif ++ _XEatData (dpy, n << 2); ++} ++#endif ++ + _XFUNCPROTOEND + + #endif /* _XPEXTUTIL_H */ +-- +1.8.2.3 + |