Update to libX11 1.5.99.902 aka 1.6rc2
This commit is contained in:
parent
1254571aea
commit
9573aeb427
@ -1,3 +1,625 @@
|
|||||||
|
commit 95a388158c9d73df7d24016d6a3d61506d7d53a4
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Thu May 23 19:43:35 2013 -0700
|
||||||
|
|
||||||
|
libX11 1.5.99.902 (1.6 RC2)
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit a3bdd2b090915fe0163b062f0e6576fe05dd332e
|
||||||
|
Author: Julien Cristau <jcristau@debian.org>
|
||||||
|
Date: Thu May 23 20:39:46 2013 +0200
|
||||||
|
|
||||||
|
xkb: fix off-by-one in _XkbReadGetNamesReply and _XkbReadVirtualModMap
|
||||||
|
|
||||||
|
The size of the arrays is max_key_code + 1. This makes these functions
|
||||||
|
consistent with the other checks added for CVE-2013-1997.
|
||||||
|
|
||||||
|
Also check the XkbGetNames reply when names->keys was just allocated.
|
||||||
|
|
||||||
|
Signed-off-by: Julien Cristau <jcristau@debian.org>
|
||||||
|
Tested-by: Colin Walters <walters@verbum.org>
|
||||||
|
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit 7e30056e78e4b7979ff47f102e00327617266019
|
||||||
|
Author: Niveditha Rau <Niveditha.Rau@Oracle.COM>
|
||||||
|
Date: Fri May 17 15:26:21 2013 -0700
|
||||||
|
|
||||||
|
Make sure internal headers include required headers
|
||||||
|
|
||||||
|
Fixes builds with Solaris Studio 12.3 when lint is enabled, since it no
|
||||||
|
longer ignores *.h files, but complains when they reference undefined
|
||||||
|
typedefs or macros.
|
||||||
|
|
||||||
|
Signed-off-by: Niveditha Rau <Niveditha.Rau@Oracle.COM>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit 2820100bf8ba130b94253f415e7fa5ac28bb2037
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Thu May 16 23:05:36 2013 -0700
|
||||||
|
|
||||||
|
Free fs->properties in _XF86BigfontQueryFont overflow error path
|
||||||
|
|
||||||
|
Fixes small memory leak introduced in commit 5669a22081
|
||||||
|
|
||||||
|
Reported-by: Julien Cristau <jcristau@debian.org>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit 3131740513133a9ff7cb12123d29ceb18584fc38
|
||||||
|
Author: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
Date: Wed May 8 19:33:09 2013 +0200
|
||||||
|
|
||||||
|
XListFontsWithInfo: Re-decrement flist[0] before calling free() on it.
|
||||||
|
|
||||||
|
Freeing a pointer that wasn't returned by malloc() is undefined
|
||||||
|
behavior and produces an error with OpenBSD's implementation.
|
||||||
|
|
||||||
|
Signed-off-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit 3fe4bea086149f06a142a8f1d575f627ec1e22c7
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Fri Apr 19 14:30:40 2013 -0700
|
||||||
|
|
||||||
|
Give GNU & Solaris Studio compilers hints about XEatData branches
|
||||||
|
|
||||||
|
Try to offset the cost of all the recent checks we've added by giving
|
||||||
|
the compiler a hint that the branches that involve us eating data
|
||||||
|
are less likely to be used than the ones that process it.
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit e1b457beb8d4e831ef44279dada6c475cb955738
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sun Mar 31 12:22:35 2013 -0700
|
||||||
|
|
||||||
|
_XkbReadGetMapReply: reject maxKeyCodes smaller than the minKeyCode
|
||||||
|
|
||||||
|
Various other bounds checks in the code assume this is true, so
|
||||||
|
enforce it when we first get the data from the X server.
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit 12ad4c6432496897ff000eb7cfecd0fb4b290331
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 16 10:03:13 2013 -0700
|
||||||
|
|
||||||
|
Use calloc in XOpenDisplay to initialize structs containing pointers
|
||||||
|
|
||||||
|
Prevents trying to free uninitialized pointers if we have to bail out
|
||||||
|
partway through setup, such as if we receive a corrupted or incomplete
|
||||||
|
connection setup block from the server.
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit d38527e25f8b6e2f1174ecc21260c5c5416f972e
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Thu Mar 7 23:46:05 2013 -0800
|
||||||
|
|
||||||
|
Remove more unnecessary casts from Xmalloc/calloc calls
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit b2c86b582c58f50c7b14da01cf7ebd20ef12a6b2
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 16:56:16 2013 -0800
|
||||||
|
|
||||||
|
Convert more _XEatData callers to _XEatDataWords
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 192bbb9e2fc45df4e17b35b6d14ea0eb418dbd39
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 9 11:04:37 2013 -0800
|
||||||
|
|
||||||
|
Make XGetWindowProperty() always initialize returned values
|
||||||
|
|
||||||
|
Avoids memory corruption and other errors when callers access them
|
||||||
|
without checking to see if XGetWindowProperty() returned an error value.
|
||||||
|
|
||||||
|
Callers are still required to check for errors, this just reduces the
|
||||||
|
damage when they don't.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit db1b1c871da29aa0545182bf888df81627f165a5
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 15:08:21 2013 -0800
|
||||||
|
|
||||||
|
Avoid overflows in XListExtensions() [CVE-2013-1997 15/15]
|
||||||
|
|
||||||
|
Ensure that when breaking the returned list into individual strings,
|
||||||
|
we don't walk past the end of allocated memory to write the '\0' bytes
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 8d5936594993921acdfec778dd8f41b555e2543a
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 15:08:21 2013 -0800
|
||||||
|
|
||||||
|
Avoid overflows in XGetFontPath() [CVE-2013-1997 14/15]
|
||||||
|
|
||||||
|
Ensure that when breaking the returned list into individual strings,
|
||||||
|
we don't walk past the end of allocated memory to write the '\0' bytes
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 0c404db6a92dc2c198328bf586c02d8abbe02013
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 15:08:21 2013 -0800
|
||||||
|
|
||||||
|
Avoid overflows in XListFonts() [CVE-2013-1997 13/15]
|
||||||
|
|
||||||
|
Ensure that when breaking the returned list into individual strings,
|
||||||
|
we don't walk past the end of allocated memory to write the '\0' bytes
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 0b0f5d4358c3de7563d6af03f0d2ce454702a06a
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 15:08:21 2013 -0800
|
||||||
|
|
||||||
|
integer overflow in XGetModifierMapping() [CVE-2013-1981 13/13]
|
||||||
|
|
||||||
|
Ensure that we don't underallocate when the server claims a very large reply
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit a351b8103b2ba78882e1c309e85893ca3abe2073
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 15:08:21 2013 -0800
|
||||||
|
|
||||||
|
integer overflow in XGetPointerMapping() & XGetKeyboardMapping() [CVE-2013-1981 12/13]
|
||||||
|
|
||||||
|
Ensure that we don't underallocate when the server claims a very large reply
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 833f6b70bc789d33607f6dbfee9e0a4178ec4b59
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 15:08:21 2013 -0800
|
||||||
|
|
||||||
|
integer overflow in XGetImage() [CVE-2013-1981 11/13]
|
||||||
|
|
||||||
|
Ensure that we don't underallocate when the server claims to have sent a
|
||||||
|
very large reply.
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 79d8dc08eb98842173ce239b9dd60df0e9e9ae72
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Fri Mar 8 22:25:35 2013 -0800
|
||||||
|
|
||||||
|
integer overflow in XGetWindowProperty() [CVE-2013-1981 10/13]
|
||||||
|
|
||||||
|
If the reported number of properties is too large, the calculations
|
||||||
|
to allocate memory for them may overflow, leaving us returning less
|
||||||
|
memory to the caller than implied by the value written to *nitems.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 164bf4dfe839b1cc75cdeee378a243d04a8200e4
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 13:18:48 2013 -0800
|
||||||
|
|
||||||
|
integer overflows in TransFileName() [CVE-2013-1981 9/13]
|
||||||
|
|
||||||
|
When trying to process file paths the tokens %H, %L, & %S are expanded
|
||||||
|
to $HOME, the standard compose file path & the xlocaledir path.
|
||||||
|
If enough of these tokens are repeated and values like $HOME are set to
|
||||||
|
very large values, the calculation of the total string size required to
|
||||||
|
hold the expanded path can overflow, resulting in allocating a smaller
|
||||||
|
string than the amount of data we'll write to it.
|
||||||
|
|
||||||
|
Simply restrict all of these values, and the total path size to PATH_MAX,
|
||||||
|
because really, that's all you should need for a filename path.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 460e8a223b87d4fa0ea1e97823e998a770e0f2a2
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Fri Mar 1 18:37:37 2013 -0800
|
||||||
|
|
||||||
|
integer truncation in _XimParseStringFile() [CVE-2013-1981 8/13]
|
||||||
|
|
||||||
|
Called from _XimCreateDefaultTree() which uses getenv("XCOMPOSEFILE")
|
||||||
|
to specify filename.
|
||||||
|
|
||||||
|
If the size of off_t is larger than the size of unsigned long (as in
|
||||||
|
32-bit builds with large file flags), a file larger than 4 gigs could
|
||||||
|
have its size truncated, leading to data from that file being written
|
||||||
|
past the end of the undersized buffer allocated for it.
|
||||||
|
|
||||||
|
While configure.ac does not use AC_SYS_LARGEFILE to set large file mode,
|
||||||
|
builders may have added the large file compilation flags to CFLAGS on
|
||||||
|
their own.
|
||||||
|
|
||||||
|
size is left limited to an int, because if your Xim file is
|
||||||
|
larger than 2gb, you're doing it wrong.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 226622349a4b1e16064649d4444a34fb4be4f464
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 12:39:58 2013 -0800
|
||||||
|
|
||||||
|
Unbounded recursion in _XimParseStringFile() when parsing include files [CVE-2013-2004 2/2]
|
||||||
|
|
||||||
|
parseline() can call _XimParseStringFile() which can call parseline()
|
||||||
|
which can call _XimParseStringFile() which can call parseline() ....
|
||||||
|
eventually causing recursive stack overflow and crash.
|
||||||
|
|
||||||
|
Limit is set to a include depth of 100 files, which should be enough
|
||||||
|
for all known use cases, but could be adjusted later if necessary.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 236b603d235dc264d1c6250dca09c745458a9088
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 12:01:39 2013 -0800
|
||||||
|
|
||||||
|
Unbounded recursion in GetDatabase() when parsing include files [CVE-2013-2004 1/2]
|
||||||
|
|
||||||
|
GetIncludeFile() can call GetDatabase() which can call GetIncludeFile()
|
||||||
|
which can call GetDatabase() which can call GetIncludeFile() ....
|
||||||
|
eventually causing recursive stack overflow and crash.
|
||||||
|
|
||||||
|
Easily reproduced with a resource file that #includes itself.
|
||||||
|
|
||||||
|
Limit is set to a include depth of 100 files, which should be enough
|
||||||
|
for all known use cases, but could be adjusted later if necessary.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 076428918e6c35f66b9b55c3fa097ff06496d155
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Fri Mar 1 18:37:37 2013 -0800
|
||||||
|
|
||||||
|
integer overflow in ReadInFile() in Xrm.c [CVE-2013-1981 7/13]
|
||||||
|
|
||||||
|
Called from XrmGetFileDatabase() which gets called from InitDefaults()
|
||||||
|
which gets the filename from getenv ("XENVIRONMENT")
|
||||||
|
|
||||||
|
If file is exactly 0xffffffff bytes long (or longer and truncates to
|
||||||
|
0xffffffff, on implementations where off_t is larger than an int),
|
||||||
|
then size may be set to a value which overflows causing less memory
|
||||||
|
to be allocated than is written to by the following read() call.
|
||||||
|
|
||||||
|
size is left limited to an int, because if your Xresources file is
|
||||||
|
larger than 2gb, you're very definitely doing it wrong.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 90fd5abac2faca86f9f100353a3c9c7b89f31484
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 11:44:19 2013 -0800
|
||||||
|
|
||||||
|
Integer overflows in stringSectionSize() cause buffer overflow in ReadColornameDB() [CVE-2013-1981 6/13]
|
||||||
|
|
||||||
|
LoadColornameDB() calls stringSectionSize() to do a first pass over the
|
||||||
|
file (which may be provided by the user via XCMSDB environment variable)
|
||||||
|
to determine how much memory needs to be allocated to read in the file,
|
||||||
|
then allocates the returned sizes and calls ReadColornameDB() to load the
|
||||||
|
data from the file into that newly allocated memory.
|
||||||
|
|
||||||
|
If stringSectionSize() overflows the signed ints used to calculate the
|
||||||
|
file size (say if you have an xcmsdb with ~4 billion lines in or a
|
||||||
|
combined string length of ~4 gig - which while it may have been
|
||||||
|
inconceivable when Xlib was written, is quite possible today), then
|
||||||
|
LoadColornameDB() may allocate a memory buffer much smaller than the
|
||||||
|
amount of data ReadColornameDB() will write to it.
|
||||||
|
|
||||||
|
The total size is left limited to an int, because if your xcmsdb file
|
||||||
|
is larger than 2gb, you're doing it wrong.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit b9ba832401734e1cbd30a930c0d11d850293f3f9
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 11:25:25 2013 -0800
|
||||||
|
|
||||||
|
unvalidated length in _XimXGetReadData() [CVE-2013-1997 12/15]
|
||||||
|
|
||||||
|
Check the provided buffer size against the amount of data we're going to
|
||||||
|
write into it, not against the reported length from the ClientMessage.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit de2e6c322c4aca22856b380f67f8e488e7510015
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 11:11:08 2013 -0800
|
||||||
|
|
||||||
|
unvalidated index/length in _XkbReadGetNamesReply() [CVE-2013-1997 11/15]
|
||||||
|
|
||||||
|
If the X server returns key name indexes outside the range of the number
|
||||||
|
of keys it told us to allocate, out of bounds memory writes could occur.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 2df882eeb3a70256170127a746a9ba26376599a1
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 11:01:04 2013 -0800
|
||||||
|
|
||||||
|
unvalidated index in _XkbReadVirtualModMap() [CVE-2013-1997 10/15]
|
||||||
|
|
||||||
|
If the X server returns modifier map indexes outside the range of the number
|
||||||
|
of keys it told us to allocate, out of bounds memory writes could occur.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 4d7c422a37eb9617fb22f8e37527c2b34b105665
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 11:04:44 2013 -0800
|
||||||
|
|
||||||
|
unvalidated index in _XkbReadExplicitComponents() [CVE-2013-1997 9/15]
|
||||||
|
|
||||||
|
If the X server returns key indexes outside the range of the number of
|
||||||
|
keys it told us to allocate, out of bounds memory writes could occur.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit e56a2ada719c5cfac5ed61a52a80ade86c0f5957
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 10:51:51 2013 -0800
|
||||||
|
|
||||||
|
unvalidated index in _XkbReadModifierMap() [CVE-2013-1997 8/15]
|
||||||
|
|
||||||
|
If the X server returns modifier map indexes outside the range of the number
|
||||||
|
of keys it told us to allocate, out of bounds memory writes could occur.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 06c086e8a1d8374ea9a95ff989f053c96bb1bdca
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 10:39:21 2013 -0800
|
||||||
|
|
||||||
|
unvalidated index in _XkbReadKeyBehaviors() [CVE-2013-1997 7/15]
|
||||||
|
|
||||||
|
If the X server returns key behavior indexes outside the range of the number
|
||||||
|
of keys it told us to allocate, out of bounds memory writes could occur.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 00626c3830b869259098985afa38933d77ccec72
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 09:40:22 2013 -0800
|
||||||
|
|
||||||
|
unvalidated index in _XkbReadKeyActions() [CVE-2013-1997 6/15]
|
||||||
|
|
||||||
|
If the X server returns key action indexes outside the range of the number
|
||||||
|
of keys it told us to allocate, out of bounds memory access could occur.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit fd7d4956bc7a1c4b5c38661b12777ebee4d685d9
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 09:28:33 2013 -0800
|
||||||
|
|
||||||
|
unvalidated index in _XkbReadKeySyms() [CVE-2013-1997 5/15]
|
||||||
|
|
||||||
|
If the X server returns keymap indexes outside the range of the number of
|
||||||
|
keys it told us to allocate, out of bounds memory access could occur.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 59ae16a00d18588e98af57d26e442af8ea42b7aa
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 09:18:26 2013 -0800
|
||||||
|
|
||||||
|
unvalidated indexes in _XkbReadGetGeometryReply() [CVE-2013-1997 4/15]
|
||||||
|
|
||||||
|
If the X server returns color indexes outside the range of the number of
|
||||||
|
colors it told us to allocate, out of bounds memory access could occur.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit bff938b9fe1629cbacb726509edfa2a3840b7207
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 09:12:47 2013 -0800
|
||||||
|
|
||||||
|
unvalidated indexes in _XkbReadGeomShapes() [CVE-2013-1997 3/15]
|
||||||
|
|
||||||
|
If the X server returns shape indexes outside the range of the number
|
||||||
|
of shapes it told us to allocate, out of bounds memory access could occur.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit f293659d5a4024bda386305bb7ebeb4647c40934
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Fri Mar 1 22:49:01 2013 -0800
|
||||||
|
|
||||||
|
unvalidated index in _XkbReadGetDeviceInfoReply() [CVE-2013-1997 2/15]
|
||||||
|
|
||||||
|
If the X server returns more buttons than are allocated in the XKB
|
||||||
|
device info structures, out of bounds writes could occur.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit cddc4e7e3cb4b9b7ad25f8591971a86901c249f2
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Fri Mar 1 19:30:09 2013 -0800
|
||||||
|
|
||||||
|
unvalidated lengths in XAllocColorCells() [CVE-2013-1997 1/15]
|
||||||
|
|
||||||
|
If a broken server returned larger than requested values for nPixels or
|
||||||
|
nMasks, XAllocColorCells would happily overflow the buffers provided by
|
||||||
|
the caller to write the results into.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 2cd62b5eb99ffbb2fce99f3c459455e630b35bf7
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Fri Mar 1 22:49:01 2013 -0800
|
||||||
|
|
||||||
|
integer overflow in XListHosts() [CVE-2013-1981 5/13]
|
||||||
|
|
||||||
|
If the reported number of host entries is too large, the calculations
|
||||||
|
to allocate memory for them may overflow, leaving us writing beyond the
|
||||||
|
bounds of the allocation.
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit 1f6a3dbf699b85c0ea715ef21de7e7095a714e12
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Fri Mar 1 22:49:01 2013 -0800
|
||||||
|
|
||||||
|
integer overflow in XGetMotionEvents() [CVE-2013-1981 4/13]
|
||||||
|
|
||||||
|
If the reported number of motion events is too large, the calculations
|
||||||
|
to allocate memory for them may overflow, leaving us writing beyond the
|
||||||
|
bounds of the allocation.
|
||||||
|
|
||||||
|
v2: Ensure nEvents is set to 0 when returning NULL events pointer
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit 39515b7c3ba8cae9021bf6695e378ae19487082f
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Fri Mar 1 22:49:01 2013 -0800
|
||||||
|
|
||||||
|
integer overflow in XListFontsWithInfo() [CVE-2013-1981 3/13]
|
||||||
|
|
||||||
|
If the reported number of remaining fonts is too large, the calculations
|
||||||
|
to allocate memory for them may overflow, leaving us writing beyond the
|
||||||
|
bounds of the allocation.
|
||||||
|
|
||||||
|
v2: Fix reply_left calculations, check calculated sizes fit in reply_left
|
||||||
|
v3: On error cases, also set values to be returned in pointer args to 0/NULL
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit 5669a220816b7d58fcaf0c302ead16fbe5c87817
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Fri Mar 1 21:05:27 2013 -0800
|
||||||
|
|
||||||
|
integer overflow in _XF86BigfontQueryFont() [CVE-2013-1981 2/13]
|
||||||
|
|
||||||
|
Similar to _XQueryFont, but with more ways to go wrong and overflow.
|
||||||
|
Only compiled if libX11 is built with XF86BigFont support.
|
||||||
|
|
||||||
|
v2: Fix reply_left calculations, check calculated sizes fit in reply_left
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit 6df8a63d34b7514077188e2062a13774f920c085
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Fri Mar 1 21:05:27 2013 -0800
|
||||||
|
|
||||||
|
integer overflow in _XQueryFont() on 32-bit platforms [CVE-2013-1981 1/13]
|
||||||
|
|
||||||
|
If the CARD32 reply.nCharInfos * sizeof(XCharStruct) overflows an
|
||||||
|
unsigned long, then too small of a buffer will be allocated for the
|
||||||
|
data copied in from the reply.
|
||||||
|
|
||||||
|
v2: Fix reply_left calculations, check calculated sizes fit in reply_left
|
||||||
|
|
||||||
|
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
|
commit 9f5d83706543696fc944c1835a403938c06f2cc5
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Fri Mar 1 20:54:24 2013 -0800
|
||||||
|
|
||||||
|
Add _XEatDataWords to discard a given number of 32-bit words of reply data
|
||||||
|
|
||||||
|
Matches the units of the length field in X protocol replies, and provides
|
||||||
|
a single implementation of overflow checking to avoid having to replicate
|
||||||
|
those checks in every caller.
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit d7f04c340ade3834e603c23d543132e1ee4e0c63
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 2 13:03:55 2013 -0800
|
||||||
|
|
||||||
|
Move repeated #ifdef magic to find PATH_MAX into a common header
|
||||||
|
|
||||||
|
Lets stop duplicating the mess all over
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr>
|
||||||
|
|
||||||
|
commit f3a553a4e4a55d9d19deda1ea01883e1d5d682b1
|
||||||
|
Author: Pander <pander@users.sourceforge.net>
|
||||||
|
Date: Tue May 7 18:38:14 2013 -0400
|
||||||
|
|
||||||
|
Add compose sequences for J́ and j́.
|
||||||
|
|
||||||
|
The resulting sequences are:
|
||||||
|
|
||||||
|
U+004A LATIN CAPITAL LETTER J U+0301 COMBINING ACUTE ACCENT
|
||||||
|
U+006A LATIN SMALL LETTER J U+0301 COMBINING ACUTE ACCENT
|
||||||
|
|
||||||
|
Used in Dutch, per:
|
||||||
|
|
||||||
|
http://lists.x.org/archives/xorg-devel/2013-February/035514.html
|
||||||
|
https://nl.wikipedia.org/wiki/Accenttekens_in_de_Nederlandse_spelling
|
||||||
|
|
||||||
|
Signed-off-by: Pander <pander@users.sourceforge.net>
|
||||||
|
Signed-off-by: James Cloos <cloos@jhcloos.com>
|
||||||
|
|
||||||
|
commit f49bb2dd6d4ea45c55bd21acc0efe2b764441020
|
||||||
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
Date: Sat Mar 16 18:30:56 2013 -0700
|
||||||
|
|
||||||
|
Move big request comment in XOpenDisplay to the right place
|
||||||
|
|
||||||
|
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
|
|
||||||
commit 3996543c1b2919e97d61a5d70fe1ebd7cd76fc83
|
commit 3996543c1b2919e97d61a5d70fe1ebd7cd76fc83
|
||||||
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
Date: Sat Mar 9 19:16:03 2013 -0800
|
Date: Sat Mar 9 19:16:03 2013 -0800
|
||||||
|
20
lib/libX11/configure
vendored
20
lib/libX11/configure
vendored
@ -1,6 +1,6 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for libX11 1.5.99.901.
|
# Generated by GNU Autoconf 2.69 for libX11 1.5.99.902.
|
||||||
#
|
#
|
||||||
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
|
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
|
||||||
#
|
#
|
||||||
@ -651,8 +651,8 @@ MAKEFLAGS=
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='libX11'
|
PACKAGE_NAME='libX11'
|
||||||
PACKAGE_TARNAME='libX11'
|
PACKAGE_TARNAME='libX11'
|
||||||
PACKAGE_VERSION='1.5.99.901'
|
PACKAGE_VERSION='1.5.99.902'
|
||||||
PACKAGE_STRING='libX11 1.5.99.901'
|
PACKAGE_STRING='libX11 1.5.99.902'
|
||||||
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
|
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
@ -1505,7 +1505,7 @@ if test "$ac_init_help" = "long"; then
|
|||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures libX11 1.5.99.901 to adapt to many kinds of systems.
|
\`configure' configures libX11 1.5.99.902 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@ -1575,7 +1575,7 @@ fi
|
|||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of libX11 1.5.99.901:";;
|
short | recursive ) echo "Configuration of libX11 1.5.99.902:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@ -1738,7 +1738,7 @@ fi
|
|||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
libX11 configure 1.5.99.901
|
libX11 configure 1.5.99.902
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
@ -2264,7 +2264,7 @@ cat >config.log <<_ACEOF
|
|||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by libX11 $as_me 1.5.99.901, which was
|
It was created by libX11 $as_me 1.5.99.902, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
@ -4482,7 +4482,7 @@ fi
|
|||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='libX11'
|
PACKAGE='libX11'
|
||||||
VERSION='1.5.99.901'
|
VERSION='1.5.99.902'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
@ -21429,7 +21429,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by libX11 $as_me 1.5.99.901, which was
|
This file was extended by libX11 $as_me 1.5.99.902, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@ -21495,7 +21495,7 @@ _ACEOF
|
|||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
libX11 config.status 1.5.99.901
|
libX11 config.status 1.5.99.902
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
# Initialize Autoconf
|
# Initialize Autoconf
|
||||||
AC_PREREQ([2.60])
|
AC_PREREQ([2.60])
|
||||||
AC_INIT([libX11], [1.5.99.901],
|
AC_INIT([libX11], [1.5.99.902],
|
||||||
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libX11])
|
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libX11])
|
||||||
AC_CONFIG_SRCDIR([Makefile.am])
|
AC_CONFIG_SRCDIR([Makefile.am])
|
||||||
AC_CONFIG_HEADERS([src/config.h include/X11/XlibConf.h])
|
AC_CONFIG_HEADERS([src/config.h include/X11/XlibConf.h])
|
||||||
|
@ -832,6 +832,15 @@ typedef struct _XExten { /* private to extension mechanism */
|
|||||||
struct _XExten *next_flush; /* next in list of those with flushes */
|
struct _XExten *next_flush; /* next in list of those with flushes */
|
||||||
} _XExtension;
|
} _XExtension;
|
||||||
|
|
||||||
|
/* Temporary definition until we can depend on an xproto release with it */
|
||||||
|
#ifdef _X_COLD
|
||||||
|
# define _XLIB_COLD _X_COLD
|
||||||
|
#elif defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 403) /* 4.3+ */
|
||||||
|
# define _XLIB_COLD __attribute__((__cold__))
|
||||||
|
#else
|
||||||
|
# define _XLIB_COLD /* nothing */
|
||||||
|
#endif
|
||||||
|
|
||||||
/* extension hooks */
|
/* extension hooks */
|
||||||
|
|
||||||
#ifdef DataRoutineIsProcedure
|
#ifdef DataRoutineIsProcedure
|
||||||
@ -854,11 +863,14 @@ extern int (*_XErrorFunction)(
|
|||||||
extern void _XEatData(
|
extern void _XEatData(
|
||||||
Display* /* dpy */,
|
Display* /* dpy */,
|
||||||
unsigned long /* n */
|
unsigned long /* n */
|
||||||
);
|
) _XLIB_COLD;
|
||||||
extern void _XEatDataWords(
|
extern void _XEatDataWords(
|
||||||
Display* /* dpy */,
|
Display* /* dpy */,
|
||||||
unsigned long /* n */
|
unsigned long /* n */
|
||||||
);
|
) _XLIB_COLD;
|
||||||
|
#if defined(__SUNPRO_C) /* Studio compiler alternative to "cold" attribute */
|
||||||
|
# pragma rarely_called(_XEatData, _XEatDataWords)
|
||||||
|
#endif
|
||||||
extern char *_XAllocScratch(
|
extern char *_XAllocScratch(
|
||||||
Display* /* dpy */,
|
Display* /* dpy */,
|
||||||
unsigned long /* nbytes */
|
unsigned long /* nbytes */
|
||||||
|
@ -618,6 +618,7 @@ XCOMM Part 3
|
|||||||
<Multi_key> <I> <quotedbl> : "Ï" Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
|
<Multi_key> <I> <quotedbl> : "Ï" Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||||
<Multi_key> <diaeresis> <I> : "Ï" Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
|
<Multi_key> <diaeresis> <I> : "Ï" Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||||
<Multi_key> <I> <diaeresis> : "Ï" Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
|
<Multi_key> <I> <diaeresis> : "Ï" Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||||
|
<Multi_key> <J> <acute> : "J́" # LATIN CAPITAL LETTER J U004A with COMBINING ACUTE ACCENT U0301
|
||||||
<Multi_key> <D> <H> : "Ð" ETH # LATIN CAPITAL LETTER ETH
|
<Multi_key> <D> <H> : "Ð" ETH # LATIN CAPITAL LETTER ETH
|
||||||
<dead_tilde> <N> : "Ñ" Ntilde # LATIN CAPITAL LETTER N WITH TILDE
|
<dead_tilde> <N> : "Ñ" Ntilde # LATIN CAPITAL LETTER N WITH TILDE
|
||||||
<Multi_key> <asciitilde> <N> : "Ñ" Ntilde # LATIN CAPITAL LETTER N WITH TILDE
|
<Multi_key> <asciitilde> <N> : "Ñ" Ntilde # LATIN CAPITAL LETTER N WITH TILDE
|
||||||
@ -738,6 +739,7 @@ XCOMM Part 3
|
|||||||
<Multi_key> <i> <quotedbl> : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
|
<Multi_key> <i> <quotedbl> : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
|
||||||
<Multi_key> <diaeresis> <i> : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
|
<Multi_key> <diaeresis> <i> : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
|
||||||
<Multi_key> <i> <diaeresis> : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
|
<Multi_key> <i> <diaeresis> : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
|
||||||
|
<Multi_key> <j> <acute> : "j́" # LATIN SMALL LETTER J U006A with COMBINING ACUTE ACCENT U0301
|
||||||
<Multi_key> <d> <h> : "ð" eth # LATIN SMALL LETTER ETH
|
<Multi_key> <d> <h> : "ð" eth # LATIN SMALL LETTER ETH
|
||||||
<dead_tilde> <n> : "ñ" ntilde # LATIN SMALL LETTER N WITH TILDE
|
<dead_tilde> <n> : "ñ" ntilde # LATIN SMALL LETTER N WITH TILDE
|
||||||
<Multi_key> <asciitilde> <n> : "ñ" ntilde # LATIN SMALL LETTER N WITH TILDE
|
<Multi_key> <asciitilde> <n> : "ñ" ntilde # LATIN SMALL LETTER N WITH TILDE
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
#ifndef _CMAP_H_
|
#ifndef _CMAP_H_
|
||||||
#define _CMAP_H_
|
#define _CMAP_H_
|
||||||
|
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
extern void
|
extern void
|
||||||
_XcmsDeleteCmapRec(
|
_XcmsDeleteCmapRec(
|
||||||
Display *dpy,
|
Display *dpy,
|
||||||
|
@ -111,7 +111,7 @@ static void ResizeTable(DB db)
|
|||||||
otable = db->table;
|
otable = db->table;
|
||||||
for (i = INITHASHMASK+1; (i + i) < db->numentries; )
|
for (i = INITHASHMASK+1; (i + i) < db->numentries; )
|
||||||
i += i;
|
i += i;
|
||||||
db->table = (TableEntry *) Xcalloc((unsigned)i, sizeof(TableEntry));
|
db->table = Xcalloc(i, sizeof(TableEntry));
|
||||||
if (!db->table) {
|
if (!db->table) {
|
||||||
db->table = otable;
|
db->table = otable;
|
||||||
return;
|
return;
|
||||||
@ -180,11 +180,11 @@ int XSaveContext(
|
|||||||
UnlockDisplay(display);
|
UnlockDisplay(display);
|
||||||
}
|
}
|
||||||
if (!db) {
|
if (!db) {
|
||||||
db = (DB) Xmalloc(sizeof(DBRec));
|
db = Xmalloc(sizeof(DBRec));
|
||||||
if (!db)
|
if (!db)
|
||||||
return XCNOMEM;
|
return XCNOMEM;
|
||||||
db->mask = INITHASHMASK;
|
db->mask = INITHASHMASK;
|
||||||
db->table = (TableEntry *)Xcalloc(db->mask + 1, sizeof(TableEntry));
|
db->table = Xcalloc(db->mask + 1, sizeof(TableEntry));
|
||||||
if (!db->table) {
|
if (!db->table) {
|
||||||
Xfree((char *)db);
|
Xfree((char *)db);
|
||||||
return XCNOMEM;
|
return XCNOMEM;
|
||||||
@ -210,7 +210,7 @@ int XSaveContext(
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
entry = (TableEntry) Xmalloc(sizeof(TableEntryRec));
|
entry = Xmalloc(sizeof(TableEntryRec));
|
||||||
if (!entry)
|
if (!entry)
|
||||||
return XCNOMEM;
|
return XCNOMEM;
|
||||||
entry->rid = rid;
|
entry->rid = rid;
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
#ifndef _CR_H_
|
#ifndef _CR_H_
|
||||||
#define _CR_H_
|
#define _CR_H_
|
||||||
|
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
extern int _XUpdateGCCache(
|
extern int _XUpdateGCCache(
|
||||||
register GC gc,
|
register GC gc,
|
||||||
register unsigned long mask,
|
register unsigned long mask,
|
||||||
|
@ -72,7 +72,7 @@ GC XCreateGC (
|
|||||||
register _XExtension *ext;
|
register _XExtension *ext;
|
||||||
|
|
||||||
LockDisplay(dpy);
|
LockDisplay(dpy);
|
||||||
if ((gc = (GC)Xmalloc (sizeof(struct _XGC))) == NULL) {
|
if ((gc = Xmalloc (sizeof(struct _XGC))) == NULL) {
|
||||||
UnlockDisplay(dpy);
|
UnlockDisplay(dpy);
|
||||||
SyncHandle();
|
SyncHandle();
|
||||||
return (NULL);
|
return (NULL);
|
||||||
|
@ -49,7 +49,7 @@ int *XListDepths (
|
|||||||
register Depth *dp;
|
register Depth *dp;
|
||||||
register int i;
|
register int i;
|
||||||
|
|
||||||
depths = (int *) Xmalloc (count * sizeof(int));
|
depths = Xmalloc (count * sizeof(int));
|
||||||
if (!depths) return NULL;
|
if (!depths) return NULL;
|
||||||
for (i = 0, dp = scr->depths; i < count; i++, dp++)
|
for (i = 0, dp = scr->depths; i < count; i++, dp++)
|
||||||
depths[i] = dp->depth;
|
depths[i] = dp->depth;
|
||||||
|
@ -112,7 +112,7 @@ _XParseBaseFontNameList(
|
|||||||
if (!*ptr)
|
if (!*ptr)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!(list = (char **) Xmalloc((unsigned)sizeof(char *) * (*num + 1)))) {
|
if (!(list = Xmalloc(sizeof(char *) * (*num + 1)))) {
|
||||||
Xfree(psave);
|
Xfree(psave);
|
||||||
return (char **)NULL;
|
return (char **)NULL;
|
||||||
}
|
}
|
||||||
@ -133,7 +133,7 @@ copy_string_list(
|
|||||||
if (string_list == NULL || list_count <= 0)
|
if (string_list == NULL || list_count <= 0)
|
||||||
return (char **) NULL;
|
return (char **) NULL;
|
||||||
|
|
||||||
string_list_ret = (char **) Xmalloc(sizeof(char *) * list_count);
|
string_list_ret = Xmalloc(sizeof(char *) * list_count);
|
||||||
if (string_list_ret == NULL)
|
if (string_list_ret == NULL)
|
||||||
return (char **) NULL;
|
return (char **) NULL;
|
||||||
|
|
||||||
@ -142,7 +142,7 @@ copy_string_list(
|
|||||||
for (length = 0; count-- > 0; list_src++)
|
for (length = 0; count-- > 0; list_src++)
|
||||||
length += strlen(*list_src) + 1;
|
length += strlen(*list_src) + 1;
|
||||||
|
|
||||||
dst = (char *) Xmalloc(length);
|
dst = Xmalloc(length);
|
||||||
if (dst == NULL) {
|
if (dst == NULL) {
|
||||||
Xfree(string_list_ret);
|
Xfree(string_list_ret);
|
||||||
return (char **) NULL;
|
return (char **) NULL;
|
||||||
|
@ -215,7 +215,7 @@ _XQueryFont (
|
|||||||
DeqAsyncHandler(dpy, &async);
|
DeqAsyncHandler(dpy, &async);
|
||||||
reply_left = reply.length -
|
reply_left = reply.length -
|
||||||
((SIZEOF(xQueryFontReply) - SIZEOF(xReply)) >> 2);
|
((SIZEOF(xQueryFontReply) - SIZEOF(xReply)) >> 2);
|
||||||
if (! (fs = (XFontStruct *) Xmalloc (sizeof (XFontStruct)))) {
|
if (! (fs = Xmalloc (sizeof (XFontStruct)))) {
|
||||||
_XEatDataWords(dpy, reply_left);
|
_XEatDataWords(dpy, reply_left);
|
||||||
return (XFontStruct *)NULL;
|
return (XFontStruct *)NULL;
|
||||||
}
|
}
|
||||||
@ -323,7 +323,7 @@ _XF86BigfontCodes (
|
|||||||
if (pData)
|
if (pData)
|
||||||
return (XF86BigfontCodes *) pData->private_data;
|
return (XF86BigfontCodes *) pData->private_data;
|
||||||
|
|
||||||
pData = (XExtData *) Xmalloc(sizeof(XExtData) + sizeof(XF86BigfontCodes));
|
pData = Xmalloc(sizeof(XExtData) + sizeof(XF86BigfontCodes));
|
||||||
if (!pData) {
|
if (!pData) {
|
||||||
/* Out of luck. */
|
/* Out of luck. */
|
||||||
return (XF86BigfontCodes *) NULL;
|
return (XF86BigfontCodes *) NULL;
|
||||||
@ -459,7 +459,7 @@ _XF86BigfontQueryFont (
|
|||||||
DeqAsyncHandler(dpy, &async1);
|
DeqAsyncHandler(dpy, &async1);
|
||||||
reply_left = reply.length -
|
reply_left = reply.length -
|
||||||
((SIZEOF(xXF86BigfontQueryFontReply) - SIZEOF(xReply)) >> 2);
|
((SIZEOF(xXF86BigfontQueryFontReply) - SIZEOF(xReply)) >> 2);
|
||||||
if (! (fs = (XFontStruct *) Xmalloc (sizeof (XFontStruct)))) {
|
if (! (fs = Xmalloc (sizeof (XFontStruct)))) {
|
||||||
_XEatDataWords(dpy, reply_left);
|
_XEatDataWords(dpy, reply_left);
|
||||||
return (XFontStruct *)NULL;
|
return (XFontStruct *)NULL;
|
||||||
}
|
}
|
||||||
@ -521,14 +521,14 @@ _XF86BigfontQueryFont (
|
|||||||
|
|
||||||
nbytes = reply.nUniqCharInfos * SIZEOF(xCharInfo)
|
nbytes = reply.nUniqCharInfos * SIZEOF(xCharInfo)
|
||||||
+ (reply.nCharInfos+1)/2 * 2 * sizeof(CARD16);
|
+ (reply.nCharInfos+1)/2 * 2 * sizeof(CARD16);
|
||||||
pUniqCI = (xCharInfo *) Xmalloc (nbytes);
|
pUniqCI = Xmalloc (nbytes);
|
||||||
if (!pUniqCI) {
|
if (!pUniqCI) {
|
||||||
if (fs->properties) Xfree((char *) fs->properties);
|
if (fs->properties) Xfree((char *) fs->properties);
|
||||||
Xfree((char *) fs);
|
Xfree((char *) fs);
|
||||||
_XEatDataWords(dpy, reply_left);
|
_XEatDataWords(dpy, reply_left);
|
||||||
return (XFontStruct *)NULL;
|
return (XFontStruct *)NULL;
|
||||||
}
|
}
|
||||||
if (! (fs->per_char = (XCharStruct *) Xmalloc (reply.nCharInfos * sizeof(XCharStruct)))) {
|
if (! (fs->per_char = Xmalloc (reply.nCharInfos * sizeof(XCharStruct)))) {
|
||||||
Xfree((char *) pUniqCI);
|
Xfree((char *) pUniqCI);
|
||||||
if (fs->properties) Xfree((char *) fs->properties);
|
if (fs->properties) Xfree((char *) fs->properties);
|
||||||
Xfree((char *) fs);
|
Xfree((char *) fs);
|
||||||
@ -555,7 +555,7 @@ _XF86BigfontQueryFont (
|
|||||||
XEDataObject fs_union;
|
XEDataObject fs_union;
|
||||||
char *addr;
|
char *addr;
|
||||||
|
|
||||||
pData = (XExtData *) Xmalloc(sizeof(XExtData));
|
pData = Xmalloc(sizeof(XExtData));
|
||||||
if (!pData) {
|
if (!pData) {
|
||||||
if (fs->properties) Xfree((char *) fs->properties);
|
if (fs->properties) Xfree((char *) fs->properties);
|
||||||
Xfree((char *) fs);
|
Xfree((char *) fs);
|
||||||
|
@ -46,7 +46,7 @@ char *_XGetAtomName(
|
|||||||
for (idx = TABLESIZE; --idx >= 0; ) {
|
for (idx = TABLESIZE; --idx >= 0; ) {
|
||||||
if ((e = *table++) && (e->atom == atom)) {
|
if ((e = *table++) && (e->atom == atom)) {
|
||||||
idx = strlen(EntryName(e)) + 1;
|
idx = strlen(EntryName(e)) + 1;
|
||||||
if ((name = (char *)Xmalloc(idx)))
|
if ((name = Xmalloc(idx)))
|
||||||
strcpy(name, EntryName(e));
|
strcpy(name, EntryName(e));
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
@ -73,12 +73,12 @@ char *XGetAtomName(
|
|||||||
SyncHandle();
|
SyncHandle();
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
if ((name = (char *) Xmalloc(rep.nameLength+1))) {
|
if ((name = Xmalloc(rep.nameLength + 1))) {
|
||||||
_XReadPad(dpy, name, (long)rep.nameLength);
|
_XReadPad(dpy, name, (long)rep.nameLength);
|
||||||
name[rep.nameLength] = '\0';
|
name[rep.nameLength] = '\0';
|
||||||
_XUpdateAtomCache(dpy, name, atom, 0, -1, 0);
|
_XUpdateAtomCache(dpy, name, atom, 0, -1, 0);
|
||||||
} else {
|
} else {
|
||||||
_XEatData(dpy, (unsigned long) (rep.nameLength + 3) & ~3);
|
_XEatDataWords(dpy, rep.length);
|
||||||
name = (char *) NULL;
|
name = (char *) NULL;
|
||||||
}
|
}
|
||||||
UnlockDisplay(dpy);
|
UnlockDisplay(dpy);
|
||||||
@ -124,7 +124,7 @@ Bool _XGetAtomNameHandler(
|
|||||||
_XGetAsyncReply(dpy, (char *)&replbuf, rep, buf, len,
|
_XGetAsyncReply(dpy, (char *)&replbuf, rep, buf, len,
|
||||||
(SIZEOF(xGetAtomNameReply) - SIZEOF(xReply)) >> 2,
|
(SIZEOF(xGetAtomNameReply) - SIZEOF(xReply)) >> 2,
|
||||||
False);
|
False);
|
||||||
state->names[state->idx] = (char *) Xmalloc(repl->nameLength+1);
|
state->names[state->idx] = Xmalloc(repl->nameLength + 1);
|
||||||
_XGetAsyncData(dpy, state->names[state->idx], buf, len,
|
_XGetAsyncData(dpy, state->names[state->idx], buf, len,
|
||||||
SIZEOF(xGetAtomNameReply), repl->nameLength,
|
SIZEOF(xGetAtomNameReply), repl->nameLength,
|
||||||
repl->length << 2);
|
repl->length << 2);
|
||||||
@ -170,13 +170,13 @@ XGetAtomNames (
|
|||||||
}
|
}
|
||||||
if (missed >= 0) {
|
if (missed >= 0) {
|
||||||
if (_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
if (_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
|
||||||
if ((names_return[missed] = (char *) Xmalloc(rep.nameLength+1))) {
|
if ((names_return[missed] = Xmalloc(rep.nameLength + 1))) {
|
||||||
_XReadPad(dpy, names_return[missed], (long)rep.nameLength);
|
_XReadPad(dpy, names_return[missed], (long)rep.nameLength);
|
||||||
names_return[missed][rep.nameLength] = '\0';
|
names_return[missed][rep.nameLength] = '\0';
|
||||||
_XUpdateAtomCache(dpy, names_return[missed], atoms[missed],
|
_XUpdateAtomCache(dpy, names_return[missed], atoms[missed],
|
||||||
0, -1, 0);
|
0, -1, 0);
|
||||||
} else {
|
} else {
|
||||||
_XEatData(dpy, (unsigned long) (rep.nameLength + 3) & ~3);
|
_XEatDataWords(dpy, rep.length);
|
||||||
async_state.status = 0;
|
async_state.status = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,7 +128,7 @@ XWMHints *XGetWMHints (
|
|||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
/* static copies not allowed in library, due to reentrancy constraint*/
|
/* static copies not allowed in library, due to reentrancy constraint*/
|
||||||
if ((hints = (XWMHints *) Xcalloc (1, (unsigned) sizeof(XWMHints)))) {
|
if ((hints = Xcalloc (1, sizeof(XWMHints)))) {
|
||||||
hints->flags = prop->flags;
|
hints->flags = prop->flags;
|
||||||
hints->input = (prop->input ? True : False);
|
hints->input = (prop->input ? True : False);
|
||||||
hints->initial_state = cvtINT32toInt (prop->initialState);
|
hints->initial_state = cvtINT32toInt (prop->initialState);
|
||||||
@ -203,8 +203,7 @@ Status XGetIconSizes (
|
|||||||
/* static copies not allowed in library, due to reentrancy constraint*/
|
/* static copies not allowed in library, due to reentrancy constraint*/
|
||||||
|
|
||||||
nitems /= NumPropIconSizeElements;
|
nitems /= NumPropIconSizeElements;
|
||||||
if (! (hp = hints = (XIconSize *)
|
if (! (hp = hints = Xcalloc (nitems, sizeof(XIconSize)))) {
|
||||||
Xcalloc ((unsigned) nitems, (unsigned) sizeof(XIconSize)))) {
|
|
||||||
if (prop) Xfree ((char *) prop);
|
if (prop) Xfree ((char *) prop);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -317,14 +316,14 @@ XGetClassHint(
|
|||||||
|
|
||||||
if ( (actual_type == XA_STRING) && (actual_format == 8) ) {
|
if ( (actual_type == XA_STRING) && (actual_format == 8) ) {
|
||||||
len_name = strlen((char *) data);
|
len_name = strlen((char *) data);
|
||||||
if (! (classhint->res_name = Xmalloc((unsigned) (len_name+1)))) {
|
if (! (classhint->res_name = Xmalloc(len_name + 1))) {
|
||||||
Xfree((char *) data);
|
Xfree((char *) data);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
strcpy(classhint->res_name, (char *) data);
|
strcpy(classhint->res_name, (char *) data);
|
||||||
if (len_name == nitems) len_name--;
|
if (len_name == nitems) len_name--;
|
||||||
len_class = strlen((char *) (data+len_name+1));
|
len_class = strlen((char *) (data+len_name+1));
|
||||||
if (! (classhint->res_class = Xmalloc((unsigned) (len_class+1)))) {
|
if (! (classhint->res_class = Xmalloc(len_class + 1))) {
|
||||||
Xfree(classhint->res_name);
|
Xfree(classhint->res_name);
|
||||||
classhint->res_name = (char *) NULL;
|
classhint->res_name = (char *) NULL;
|
||||||
Xfree((char *) data);
|
Xfree((char *) data);
|
||||||
|
@ -49,6 +49,13 @@ XGetWindowProperty(
|
|||||||
register xGetPropertyReq *req;
|
register xGetPropertyReq *req;
|
||||||
xError error = {0};
|
xError error = {0};
|
||||||
|
|
||||||
|
/* Always initialize return values, in case callers fail to initialize
|
||||||
|
them and fail to check the return code for an error. */
|
||||||
|
*actual_type = None;
|
||||||
|
*actual_format = 0;
|
||||||
|
*nitems = *bytesafter = 0L;
|
||||||
|
*prop = (unsigned char *) NULL;
|
||||||
|
|
||||||
LockDisplay(dpy);
|
LockDisplay(dpy);
|
||||||
GetReq (GetProperty, req);
|
GetReq (GetProperty, req);
|
||||||
req->window = w;
|
req->window = w;
|
||||||
@ -65,7 +72,6 @@ XGetWindowProperty(
|
|||||||
return (1); /* not Success */
|
return (1); /* not Success */
|
||||||
}
|
}
|
||||||
|
|
||||||
*prop = (unsigned char *) NULL;
|
|
||||||
if (reply.propertyType != None) {
|
if (reply.propertyType != None) {
|
||||||
unsigned long nbytes, netbytes;
|
unsigned long nbytes, netbytes;
|
||||||
int format = reply.format;
|
int format = reply.format;
|
||||||
|
@ -99,8 +99,7 @@ Status XGetRGBColormaps (
|
|||||||
/*
|
/*
|
||||||
* allocate array
|
* allocate array
|
||||||
*/
|
*/
|
||||||
cmaps = (XStandardColormap *) Xmalloc (ncmaps *
|
cmaps = Xmalloc (ncmaps * sizeof (XStandardColormap));
|
||||||
sizeof (XStandardColormap));
|
|
||||||
if (!cmaps) {
|
if (!cmaps) {
|
||||||
if (data) Xfree ((char *) data);
|
if (data) Xfree ((char *) data);
|
||||||
return False;
|
return False;
|
||||||
|
@ -332,7 +332,7 @@ XImage *XCreateImage (
|
|||||||
(xpad != 8 && xpad != 16 && xpad != 32) ||
|
(xpad != 8 && xpad != 16 && xpad != 32) ||
|
||||||
offset < 0)
|
offset < 0)
|
||||||
return (XImage *) NULL;
|
return (XImage *) NULL;
|
||||||
if ((image = (XImage *) Xcalloc(1, (unsigned) sizeof(XImage))) == NULL)
|
if ((image = Xcalloc(1, sizeof(XImage))) == NULL)
|
||||||
return (XImage *) NULL;
|
return (XImage *) NULL;
|
||||||
|
|
||||||
image->width = width;
|
image->width = width;
|
||||||
@ -842,7 +842,7 @@ static XImage *_XSubImage (
|
|||||||
register unsigned long pixel;
|
register unsigned long pixel;
|
||||||
char *data;
|
char *data;
|
||||||
|
|
||||||
if ((subimage = (XImage *) Xcalloc (1, sizeof (XImage))) == NULL)
|
if ((subimage = Xcalloc (1, sizeof (XImage))) == NULL)
|
||||||
return (XImage *) NULL;
|
return (XImage *) NULL;
|
||||||
subimage->width = width;
|
subimage->width = width;
|
||||||
subimage->height = height;
|
subimage->height = height;
|
||||||
@ -868,7 +868,7 @@ static XImage *_XSubImage (
|
|||||||
_XInitImageFuncPtrs (subimage);
|
_XInitImageFuncPtrs (subimage);
|
||||||
dsize = subimage->bytes_per_line * height;
|
dsize = subimage->bytes_per_line * height;
|
||||||
if (subimage->format == XYPixmap) dsize = dsize * subimage->depth;
|
if (subimage->format == XYPixmap) dsize = dsize * subimage->depth;
|
||||||
if (((data = Xcalloc (1, (unsigned) dsize)) == NULL) && (dsize > 0)) {
|
if (((data = Xcalloc (1, dsize)) == NULL) && (dsize > 0)) {
|
||||||
Xfree((char *) subimage);
|
Xfree((char *) subimage);
|
||||||
return (XImage *) NULL;
|
return (XImage *) NULL;
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ XExtCodes *XInitExtension (
|
|||||||
&codes.first_error)) return (NULL);
|
&codes.first_error)) return (NULL);
|
||||||
|
|
||||||
LockDisplay (dpy);
|
LockDisplay (dpy);
|
||||||
if (! (ext = (_XExtension *) Xcalloc (1, sizeof (_XExtension))) ||
|
if (! (ext = Xcalloc (1, sizeof (_XExtension))) ||
|
||||||
! (ext->name = strdup(name))) {
|
! (ext->name = strdup(name))) {
|
||||||
if (ext) Xfree((char *) ext);
|
if (ext) Xfree((char *) ext);
|
||||||
UnlockDisplay(dpy);
|
UnlockDisplay(dpy);
|
||||||
@ -71,7 +71,7 @@ XExtCodes *XAddExtension (Display *dpy)
|
|||||||
register _XExtension *ext;
|
register _XExtension *ext;
|
||||||
|
|
||||||
LockDisplay (dpy);
|
LockDisplay (dpy);
|
||||||
if (! (ext = (_XExtension *) Xcalloc (1, sizeof (_XExtension)))) {
|
if (! (ext = Xcalloc (1, sizeof (_XExtension)))) {
|
||||||
UnlockDisplay(dpy);
|
UnlockDisplay(dpy);
|
||||||
return (XExtCodes *) NULL;
|
return (XExtCodes *) NULL;
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,7 @@ Atom _XInternAtom(
|
|||||||
|
|
||||||
/* look in the cache first */
|
/* look in the cache first */
|
||||||
if (!(atoms = dpy->atoms)) {
|
if (!(atoms = dpy->atoms)) {
|
||||||
dpy->atoms = atoms = (AtomTable *)Xcalloc(1, sizeof(AtomTable));
|
dpy->atoms = atoms = Xcalloc(1, sizeof(AtomTable));
|
||||||
dpy->free_funcs->atoms = _XFreeAtomTable;
|
dpy->free_funcs->atoms = _XFreeAtomTable;
|
||||||
}
|
}
|
||||||
sig = 0;
|
sig = 0;
|
||||||
@ -127,7 +127,7 @@ _XUpdateAtomCache(
|
|||||||
|
|
||||||
if (!dpy->atoms) {
|
if (!dpy->atoms) {
|
||||||
if (idx < 0) {
|
if (idx < 0) {
|
||||||
dpy->atoms = (AtomTable *)Xcalloc(1, sizeof(AtomTable));
|
dpy->atoms = Xcalloc(1, sizeof(AtomTable));
|
||||||
dpy->free_funcs->atoms = _XFreeAtomTable;
|
dpy->free_funcs->atoms = _XFreeAtomTable;
|
||||||
}
|
}
|
||||||
if (!dpy->atoms)
|
if (!dpy->atoms)
|
||||||
@ -147,7 +147,7 @@ _XUpdateAtomCache(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
e = (Entry)Xmalloc(sizeof(EntryRec) + n + 1);
|
e = Xmalloc(sizeof(EntryRec) + n + 1);
|
||||||
if (e) {
|
if (e) {
|
||||||
e->sig = sig;
|
e->sig = sig;
|
||||||
e->atom = atom;
|
e->atom = atom;
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
#ifndef _KEY_H_
|
#ifndef _KEY_H_
|
||||||
#define _KEY_H_
|
#define _KEY_H_
|
||||||
|
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
#include <X11/Xresource.h>
|
||||||
|
|
||||||
#ifndef NEEDKTABLE
|
#ifndef NEEDKTABLE
|
||||||
extern const unsigned char _XkeyTable[];
|
extern const unsigned char _XkeyTable[];
|
||||||
#endif
|
#endif
|
||||||
|
@ -997,11 +997,9 @@ XRebindKeysym (
|
|||||||
tmp = dpy->key_bindings;
|
tmp = dpy->key_bindings;
|
||||||
nb = sizeof(KeySym) * nm;
|
nb = sizeof(KeySym) * nm;
|
||||||
|
|
||||||
if ((! (p = (struct _XKeytrans *) Xcalloc( 1, sizeof(struct _XKeytrans)))) ||
|
if ((! (p = Xcalloc( 1, sizeof(struct _XKeytrans)))) ||
|
||||||
((! (p->string = (char *) Xmalloc( (unsigned) nbytes))) &&
|
((! (p->string = Xmalloc(nbytes))) && (nbytes > 0)) ||
|
||||||
(nbytes > 0)) ||
|
((! (p->modifiers = Xmalloc(nb))) && (nb > 0))) {
|
||||||
((! (p->modifiers = (KeySym *) Xmalloc( (unsigned) nb))) &&
|
|
||||||
(nb > 0))) {
|
|
||||||
if (p) {
|
if (p) {
|
||||||
if (p->string) Xfree(p->string);
|
if (p->string) Xfree(p->string);
|
||||||
if (p->modifiers) Xfree((char *) p->modifiers);
|
if (p->modifiers) Xfree((char *) p->modifiers);
|
||||||
|
@ -34,7 +34,7 @@ Colormap *XListInstalledColormaps(
|
|||||||
Window win,
|
Window win,
|
||||||
int *n) /* RETURN */
|
int *n) /* RETURN */
|
||||||
{
|
{
|
||||||
long nbytes;
|
unsigned long nbytes;
|
||||||
Colormap *cmaps;
|
Colormap *cmaps;
|
||||||
xListInstalledColormapsReply rep;
|
xListInstalledColormapsReply rep;
|
||||||
register xResourceReq *req;
|
register xResourceReq *req;
|
||||||
@ -51,14 +51,14 @@ Colormap *XListInstalledColormaps(
|
|||||||
|
|
||||||
if (rep.nColormaps) {
|
if (rep.nColormaps) {
|
||||||
nbytes = rep.nColormaps * sizeof(Colormap);
|
nbytes = rep.nColormaps * sizeof(Colormap);
|
||||||
cmaps = (Colormap *) Xmalloc((unsigned) nbytes);
|
cmaps = Xmalloc(nbytes);
|
||||||
nbytes = rep.nColormaps << 2;
|
|
||||||
if (! cmaps) {
|
if (! cmaps) {
|
||||||
_XEatData(dpy, (unsigned long) nbytes);
|
_XEatDataWords(dpy, rep.length);
|
||||||
UnlockDisplay(dpy);
|
UnlockDisplay(dpy);
|
||||||
SyncHandle();
|
SyncHandle();
|
||||||
return((Colormap *) NULL);
|
return((Colormap *) NULL);
|
||||||
}
|
}
|
||||||
|
nbytes = rep.nColormaps << 2;
|
||||||
_XRead32 (dpy, (long *) cmaps, nbytes);
|
_XRead32 (dpy, (long *) cmaps, nbytes);
|
||||||
}
|
}
|
||||||
else cmaps = (Colormap *) NULL;
|
else cmaps = (Colormap *) NULL;
|
||||||
|
@ -34,7 +34,7 @@ Atom *XListProperties(
|
|||||||
Window window,
|
Window window,
|
||||||
int *n_props) /* RETURN */
|
int *n_props) /* RETURN */
|
||||||
{
|
{
|
||||||
long nbytes;
|
unsigned long nbytes;
|
||||||
xListPropertiesReply rep;
|
xListPropertiesReply rep;
|
||||||
Atom *properties;
|
Atom *properties;
|
||||||
register xResourceReq *req;
|
register xResourceReq *req;
|
||||||
@ -50,14 +50,14 @@ Atom *XListProperties(
|
|||||||
|
|
||||||
if (rep.nProperties) {
|
if (rep.nProperties) {
|
||||||
nbytes = rep.nProperties * sizeof(Atom);
|
nbytes = rep.nProperties * sizeof(Atom);
|
||||||
properties = (Atom *) Xmalloc ((unsigned) nbytes);
|
properties = Xmalloc (nbytes);
|
||||||
nbytes = rep.nProperties << 2;
|
|
||||||
if (! properties) {
|
if (! properties) {
|
||||||
_XEatData(dpy, (unsigned long) nbytes);
|
_XEatDataWords(dpy, rep.length);
|
||||||
UnlockDisplay(dpy);
|
UnlockDisplay(dpy);
|
||||||
SyncHandle();
|
SyncHandle();
|
||||||
return (Atom *) NULL;
|
return (Atom *) NULL;
|
||||||
}
|
}
|
||||||
|
nbytes = rep.nProperties << 2;
|
||||||
_XRead32 (dpy, (long *) properties, nbytes);
|
_XRead32 (dpy, (long *) properties, nbytes);
|
||||||
}
|
}
|
||||||
else properties = (Atom *) NULL;
|
else properties = (Atom *) NULL;
|
||||||
|
@ -97,11 +97,11 @@ XSetModifierMapping(
|
|||||||
XModifierKeymap *
|
XModifierKeymap *
|
||||||
XNewModifiermap(int keyspermodifier)
|
XNewModifiermap(int keyspermodifier)
|
||||||
{
|
{
|
||||||
XModifierKeymap *res = (XModifierKeymap *) Xmalloc((sizeof (XModifierKeymap)));
|
XModifierKeymap *res = Xmalloc((sizeof (XModifierKeymap)));
|
||||||
if (res) {
|
if (res) {
|
||||||
res->max_keypermod = keyspermodifier;
|
res->max_keypermod = keyspermodifier;
|
||||||
res->modifiermap = (keyspermodifier > 0 ?
|
res->modifiermap = (keyspermodifier > 0 ?
|
||||||
(KeyCode *) Xmalloc((unsigned) (8 * keyspermodifier))
|
Xmalloc(8 * keyspermodifier)
|
||||||
: (KeyCode *) NULL);
|
: (KeyCode *) NULL);
|
||||||
if (keyspermodifier && (res->modifiermap == NULL)) {
|
if (keyspermodifier && (res->modifiermap == NULL)) {
|
||||||
Xfree((char *) res);
|
Xfree((char *) res);
|
||||||
|
@ -112,7 +112,7 @@ XOpenDisplay (
|
|||||||
/*
|
/*
|
||||||
* Attempt to allocate a display structure. Return NULL if allocation fails.
|
* Attempt to allocate a display structure. Return NULL if allocation fails.
|
||||||
*/
|
*/
|
||||||
if ((dpy = (Display *)Xcalloc(1, sizeof(Display))) == NULL) {
|
if ((dpy = Xcalloc(1, sizeof(Display))) == NULL) {
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,9 +246,7 @@ XOpenDisplay (
|
|||||||
dpy->qlen = 0;
|
dpy->qlen = 0;
|
||||||
|
|
||||||
/* Set up free-function record */
|
/* Set up free-function record */
|
||||||
if ((dpy->free_funcs = (_XFreeFuncRec *)Xcalloc(1,
|
if ((dpy->free_funcs = Xcalloc(1, sizeof(_XFreeFuncRec))) == NULL) {
|
||||||
sizeof(_XFreeFuncRec)))
|
|
||||||
== NULL) {
|
|
||||||
OutOfMemory (dpy);
|
OutOfMemory (dpy);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
@ -316,7 +314,7 @@ XOpenDisplay (
|
|||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
dpy->vendor = (char *) Xmalloc((unsigned) (u.setup->nbytesVendor + 1));
|
dpy->vendor = Xmalloc(u.setup->nbytesVendor + 1);
|
||||||
if (dpy->vendor == NULL) {
|
if (dpy->vendor == NULL) {
|
||||||
OutOfMemory(dpy);
|
OutOfMemory(dpy);
|
||||||
return (NULL);
|
return (NULL);
|
||||||
@ -342,9 +340,7 @@ XOpenDisplay (
|
|||||||
/*
|
/*
|
||||||
* Now iterate down setup information.....
|
* Now iterate down setup information.....
|
||||||
*/
|
*/
|
||||||
dpy->pixmap_format =
|
dpy->pixmap_format = Xcalloc(dpy->nformats, sizeof(ScreenFormat));
|
||||||
(ScreenFormat *)Xmalloc(
|
|
||||||
(unsigned) (dpy->nformats *sizeof(ScreenFormat)));
|
|
||||||
if (dpy->pixmap_format == NULL) {
|
if (dpy->pixmap_format == NULL) {
|
||||||
OutOfMemory (dpy);
|
OutOfMemory (dpy);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
@ -372,8 +368,7 @@ XOpenDisplay (
|
|||||||
/*
|
/*
|
||||||
* next the Screen structures.
|
* next the Screen structures.
|
||||||
*/
|
*/
|
||||||
dpy->screens =
|
dpy->screens = Xcalloc(dpy->nscreens, sizeof(Screen));
|
||||||
(Screen *)Xmalloc((unsigned) dpy->nscreens*sizeof(Screen));
|
|
||||||
if (dpy->screens == NULL) {
|
if (dpy->screens == NULL) {
|
||||||
OutOfMemory (dpy);
|
OutOfMemory (dpy);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
@ -415,8 +410,7 @@ XOpenDisplay (
|
|||||||
/*
|
/*
|
||||||
* lets set up the depth structures.
|
* lets set up the depth structures.
|
||||||
*/
|
*/
|
||||||
sp->depths = (Depth *)Xmalloc(
|
sp->depths = Xcalloc(sp->ndepths, sizeof(Depth));
|
||||||
(unsigned)sp->ndepths*sizeof(Depth));
|
|
||||||
if (sp->depths == NULL) {
|
if (sp->depths == NULL) {
|
||||||
OutOfMemory (dpy);
|
OutOfMemory (dpy);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
@ -438,8 +432,7 @@ XOpenDisplay (
|
|||||||
dp->nvisuals = u.dp->nVisuals;
|
dp->nvisuals = u.dp->nVisuals;
|
||||||
u.dp = (xDepth *) (((char *) u.dp) + sz_xDepth);
|
u.dp = (xDepth *) (((char *) u.dp) + sz_xDepth);
|
||||||
if (dp->nvisuals > 0) {
|
if (dp->nvisuals > 0) {
|
||||||
dp->visuals =
|
dp->visuals = Xcalloc(dp->nvisuals, sizeof(Visual));
|
||||||
(Visual *)Xmalloc((unsigned)dp->nvisuals*sizeof(Visual));
|
|
||||||
if (dp->visuals == NULL) {
|
if (dp->visuals == NULL) {
|
||||||
OutOfMemory (dpy);
|
OutOfMemory (dpy);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
@ -499,6 +492,9 @@ XOpenDisplay (
|
|||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* get availability of large requests
|
||||||
|
*/
|
||||||
dpy->bigreq_size = xcb_get_maximum_request_length(dpy->xcb->connection);
|
dpy->bigreq_size = xcb_get_maximum_request_length(dpy->xcb->connection);
|
||||||
if(dpy->bigreq_size <= dpy->max_request_size)
|
if(dpy->bigreq_size <= dpy->max_request_size)
|
||||||
dpy->bigreq_size = 0;
|
dpy->bigreq_size = 0;
|
||||||
@ -525,7 +521,6 @@ XOpenDisplay (
|
|||||||
(void) XSynchronize(dpy, _Xdebug);
|
(void) XSynchronize(dpy, _Xdebug);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* get availability of large requests, and
|
|
||||||
* get the resource manager database off the root window.
|
* get the resource manager database off the root window.
|
||||||
*/
|
*/
|
||||||
LockDisplay(dpy);
|
LockDisplay(dpy);
|
||||||
@ -550,7 +545,7 @@ XOpenDisplay (
|
|||||||
dpy->xdefaults[reply.nItems] = '\0';
|
dpy->xdefaults[reply.nItems] = '\0';
|
||||||
}
|
}
|
||||||
else if (reply.propertyType != None)
|
else if (reply.propertyType != None)
|
||||||
_XEatData(dpy, reply.nItems * (reply.format >> 3));
|
_XEatDataWords(dpy, reply.length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
UnlockDisplay(dpy);
|
UnlockDisplay(dpy);
|
||||||
|
@ -38,8 +38,8 @@ XPixmapFormatValues *XListPixmapFormats (
|
|||||||
Display *dpy,
|
Display *dpy,
|
||||||
int *count) /* RETURN */
|
int *count) /* RETURN */
|
||||||
{
|
{
|
||||||
XPixmapFormatValues *formats = (XPixmapFormatValues *)
|
XPixmapFormatValues *formats =
|
||||||
Xmalloc((unsigned) (dpy->nformats * sizeof (XPixmapFormatValues)));
|
Xmalloc(dpy->nformats * sizeof (XPixmapFormatValues));
|
||||||
|
|
||||||
if (formats) {
|
if (formats) {
|
||||||
register int i;
|
register int i;
|
||||||
|
@ -95,8 +95,7 @@ InsertEdgeInET(
|
|||||||
{
|
{
|
||||||
if (*iSLLBlock > SLLSPERBLOCK-1)
|
if (*iSLLBlock > SLLSPERBLOCK-1)
|
||||||
{
|
{
|
||||||
tmpSLLBlock =
|
tmpSLLBlock = Xmalloc(sizeof(ScanLineListBlock));
|
||||||
(ScanLineListBlock *)Xmalloc(sizeof(ScanLineListBlock));
|
|
||||||
(*SLLBlock)->next = tmpSLLBlock;
|
(*SLLBlock)->next = tmpSLLBlock;
|
||||||
tmpSLLBlock->next = (ScanLineListBlock *)NULL;
|
tmpSLLBlock->next = (ScanLineListBlock *)NULL;
|
||||||
*SLLBlock = tmpSLLBlock;
|
*SLLBlock = tmpSLLBlock;
|
||||||
@ -410,8 +409,7 @@ static int PtsToRegion(
|
|||||||
|
|
||||||
numRects = ((numFullPtBlocks * NUMPTSTOBUFFER) + iCurPtBlock) >> 1;
|
numRects = ((numFullPtBlocks * NUMPTSTOBUFFER) + iCurPtBlock) >> 1;
|
||||||
|
|
||||||
if (!(reg->rects = (BOX *)Xrealloc((char *)reg->rects,
|
if (!(reg->rects = Xrealloc(reg->rects, sizeof(BOX) * numRects))) {
|
||||||
(unsigned) (sizeof(BOX) * numRects)))) {
|
|
||||||
Xfree(prevRects);
|
Xfree(prevRects);
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
@ -521,8 +519,7 @@ XPolygonRegion(
|
|||||||
|
|
||||||
if (Count < 2) return region;
|
if (Count < 2) return region;
|
||||||
|
|
||||||
if (! (pETEs = (EdgeTableEntry *)
|
if (! (pETEs = Xmalloc(sizeof(EdgeTableEntry) * Count))) {
|
||||||
Xmalloc((unsigned) (sizeof(EdgeTableEntry) * Count)))) {
|
|
||||||
XDestroyRegion(region);
|
XDestroyRegion(region);
|
||||||
return (Region) NULL;
|
return (Region) NULL;
|
||||||
}
|
}
|
||||||
@ -559,7 +556,7 @@ XPolygonRegion(
|
|||||||
* send out the buffer
|
* send out the buffer
|
||||||
*/
|
*/
|
||||||
if (iPts == NUMPTSTOBUFFER) {
|
if (iPts == NUMPTSTOBUFFER) {
|
||||||
tmpPtBlock = (POINTBLOCK *)Xmalloc(sizeof(POINTBLOCK));
|
tmpPtBlock = Xmalloc(sizeof(POINTBLOCK));
|
||||||
curPtBlock->next = tmpPtBlock;
|
curPtBlock->next = tmpPtBlock;
|
||||||
curPtBlock = tmpPtBlock;
|
curPtBlock = tmpPtBlock;
|
||||||
pts = curPtBlock->pts;
|
pts = curPtBlock->pts;
|
||||||
@ -605,7 +602,7 @@ XPolygonRegion(
|
|||||||
* send out the buffer
|
* send out the buffer
|
||||||
*/
|
*/
|
||||||
if (iPts == NUMPTSTOBUFFER) {
|
if (iPts == NUMPTSTOBUFFER) {
|
||||||
tmpPtBlock = (POINTBLOCK *)Xmalloc(sizeof(POINTBLOCK));
|
tmpPtBlock = Xmalloc(sizeof(POINTBLOCK));
|
||||||
curPtBlock->next = tmpPtBlock;
|
curPtBlock->next = tmpPtBlock;
|
||||||
curPtBlock = tmpPtBlock;
|
curPtBlock = tmpPtBlock;
|
||||||
pts = curPtBlock->pts;
|
pts = curPtBlock->pts;
|
||||||
|
@ -39,20 +39,19 @@ in this Software without prior written authorization from The Open Group.
|
|||||||
|
|
||||||
XSizeHints *XAllocSizeHints (void)
|
XSizeHints *XAllocSizeHints (void)
|
||||||
{
|
{
|
||||||
return ((XSizeHints *) Xcalloc (1, (unsigned) sizeof (XSizeHints)));
|
return Xcalloc (1, sizeof (XSizeHints));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
XStandardColormap *XAllocStandardColormap (void)
|
XStandardColormap *XAllocStandardColormap (void)
|
||||||
{
|
{
|
||||||
return ((XStandardColormap *)
|
return Xcalloc (1, sizeof (XStandardColormap));
|
||||||
Xcalloc (1, (unsigned) sizeof (XStandardColormap)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
XWMHints *XAllocWMHints (void)
|
XWMHints *XAllocWMHints (void)
|
||||||
{
|
{
|
||||||
return ((XWMHints *) Xcalloc (1, (unsigned) sizeof (XWMHints)));
|
return Xcalloc (1, sizeof (XWMHints));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -64,7 +63,7 @@ XClassHint *XAllocClassHint (void)
|
|||||||
|
|
||||||
XIconSize *XAllocIconSize (void)
|
XIconSize *XAllocIconSize (void)
|
||||||
{
|
{
|
||||||
return ((XIconSize *) Xcalloc (1, (unsigned) sizeof (XIconSize)));
|
return Xcalloc (1, sizeof (XIconSize));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ _XPutBackEvent (
|
|||||||
XEvent store = *event;
|
XEvent store = *event;
|
||||||
|
|
||||||
if (!dpy->qfree) {
|
if (!dpy->qfree) {
|
||||||
if ((dpy->qfree = (_XQEvent *) Xmalloc (sizeof (_XQEvent))) == NULL) {
|
if ((dpy->qfree = Xmalloc (sizeof (_XQEvent))) == NULL) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
dpy->qfree->next = NULL;
|
dpy->qfree->next = NULL;
|
||||||
|
@ -680,7 +680,7 @@ SendXYImage(
|
|||||||
|
|
||||||
length = ROUNDUP(length, 4);
|
length = ROUNDUP(length, 4);
|
||||||
if ((dpy->bufptr + length) > dpy->bufmax) {
|
if ((dpy->bufptr + length) > dpy->bufmax) {
|
||||||
if ((buf = _XAllocScratch(dpy, (unsigned long) (length))) == NULL) {
|
if ((buf = _XAllocScratch(dpy, length)) == NULL) {
|
||||||
UnGetReq(PutImage);
|
UnGetReq(PutImage);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -703,13 +703,13 @@ SendXYImage(
|
|||||||
bytes_per_temp_plane = bytes_per_line * req->height;
|
bytes_per_temp_plane = bytes_per_line * req->height;
|
||||||
temp_length = ROUNDUP(bytes_per_temp_plane * image->depth, 4);
|
temp_length = ROUNDUP(bytes_per_temp_plane * image->depth, 4);
|
||||||
if (buf == dpy->bufptr) {
|
if (buf == dpy->bufptr) {
|
||||||
if (! (temp = _XAllocScratch(dpy, (unsigned long) temp_length))) {
|
if (! (temp = _XAllocScratch(dpy, temp_length))) {
|
||||||
UnGetReq(PutImage);
|
UnGetReq(PutImage);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if ((extra = temp = Xmalloc((unsigned) temp_length)) == NULL) {
|
if ((extra = temp = Xmalloc(temp_length)) == NULL) {
|
||||||
UnGetReq(PutImage);
|
UnGetReq(PutImage);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -778,8 +778,7 @@ SendZImage(
|
|||||||
(req_yoffset * image->bytes_per_line) +
|
(req_yoffset * image->bytes_per_line) +
|
||||||
((req_xoffset * image->bits_per_pixel) >> 3);
|
((req_xoffset * image->bits_per_pixel) >> 3);
|
||||||
if ((image->bits_per_pixel == 4) && ((unsigned int) req_xoffset & 0x01)) {
|
if ((image->bits_per_pixel == 4) && ((unsigned int) req_xoffset & 0x01)) {
|
||||||
if (! (shifted_src = (unsigned char *)
|
if (! (shifted_src = Xmalloc(req->height * image->bytes_per_line))) {
|
||||||
Xmalloc((unsigned) (req->height * image->bytes_per_line)))) {
|
|
||||||
UnGetReq(PutImage);
|
UnGetReq(PutImage);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -810,7 +809,7 @@ SendZImage(
|
|||||||
dest = (unsigned char *)dpy->bufptr;
|
dest = (unsigned char *)dpy->bufptr;
|
||||||
else
|
else
|
||||||
if ((dest = (unsigned char *)
|
if ((dest = (unsigned char *)
|
||||||
_XAllocScratch(dpy, (unsigned long)(length))) == NULL) {
|
_XAllocScratch(dpy, length)) == NULL) {
|
||||||
if (shifted_src) Xfree((char *) shifted_src);
|
if (shifted_src) Xfree((char *) shifted_src);
|
||||||
UnGetReq(PutImage);
|
UnGetReq(PutImage);
|
||||||
return;
|
return;
|
||||||
@ -1001,7 +1000,7 @@ XPutImage (
|
|||||||
img.bits_per_pixel = dest_bits_per_pixel;
|
img.bits_per_pixel = dest_bits_per_pixel;
|
||||||
img.bytes_per_line = ROUNDUP((dest_bits_per_pixel * width),
|
img.bytes_per_line = ROUNDUP((dest_bits_per_pixel * width),
|
||||||
dest_scanline_pad) >> 3;
|
dest_scanline_pad) >> 3;
|
||||||
img.data = Xmalloc((unsigned) (img.bytes_per_line * height));
|
img.data = Xmalloc(img.bytes_per_line * height);
|
||||||
if (img.data == NULL)
|
if (img.data == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
_XInitImageFuncPtrs(&img);
|
_XInitImageFuncPtrs(&img);
|
||||||
|
@ -37,9 +37,7 @@ _XQueryColors(
|
|||||||
int ncolors)
|
int ncolors)
|
||||||
{
|
{
|
||||||
register int i;
|
register int i;
|
||||||
xrgb *color;
|
|
||||||
xQueryColorsReply rep;
|
xQueryColorsReply rep;
|
||||||
long nbytes;
|
|
||||||
register xQueryColorsReq *req;
|
register xQueryColorsReq *req;
|
||||||
|
|
||||||
GetReq(QueryColors, req);
|
GetReq(QueryColors, req);
|
||||||
@ -52,8 +50,9 @@ _XQueryColors(
|
|||||||
/* XXX this isn't very efficient */
|
/* XXX this isn't very efficient */
|
||||||
|
|
||||||
if (_XReply(dpy, (xReply *) &rep, 0, xFalse) != 0) {
|
if (_XReply(dpy, (xReply *) &rep, 0, xFalse) != 0) {
|
||||||
if ((color = (xrgb *)
|
unsigned long nbytes = (long) ncolors * SIZEOF(xrgb);
|
||||||
Xmalloc((unsigned) (nbytes = (long) ncolors * SIZEOF(xrgb))))) {
|
xrgb *color = Xmalloc(nbytes);
|
||||||
|
if (color != NULL) {
|
||||||
|
|
||||||
_XRead(dpy, (char *) color, nbytes);
|
_XRead(dpy, (char *) color, nbytes);
|
||||||
|
|
||||||
@ -67,7 +66,8 @@ _XQueryColors(
|
|||||||
}
|
}
|
||||||
Xfree((char *)color);
|
Xfree((char *)color);
|
||||||
}
|
}
|
||||||
else _XEatData(dpy, (unsigned long) nbytes);
|
else
|
||||||
|
_XEatDataWords(dpy, rep.length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ Status XQueryTree (
|
|||||||
Window **children, /* RETURN */
|
Window **children, /* RETURN */
|
||||||
unsigned int *nchildren) /* RETURN */
|
unsigned int *nchildren) /* RETURN */
|
||||||
{
|
{
|
||||||
long nbytes;
|
unsigned long nbytes;
|
||||||
xQueryTreeReply rep;
|
xQueryTreeReply rep;
|
||||||
register xResourceReq *req;
|
register xResourceReq *req;
|
||||||
|
|
||||||
@ -52,14 +52,14 @@ Status XQueryTree (
|
|||||||
*children = (Window *) NULL;
|
*children = (Window *) NULL;
|
||||||
if (rep.nChildren != 0) {
|
if (rep.nChildren != 0) {
|
||||||
nbytes = rep.nChildren * sizeof(Window);
|
nbytes = rep.nChildren * sizeof(Window);
|
||||||
*children = (Window *) Xmalloc((unsigned) nbytes);
|
*children = Xmalloc(nbytes);
|
||||||
nbytes = rep.nChildren << 2;
|
|
||||||
if (! *children) {
|
if (! *children) {
|
||||||
_XEatData(dpy, (unsigned long) nbytes);
|
_XEatDataWords(dpy, rep.length);
|
||||||
UnlockDisplay(dpy);
|
UnlockDisplay(dpy);
|
||||||
SyncHandle();
|
SyncHandle();
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
nbytes = rep.nChildren << 2;
|
||||||
_XRead32 (dpy, (long *) *children, nbytes);
|
_XRead32 (dpy, (long *) *children, nbytes);
|
||||||
}
|
}
|
||||||
*parent = rep.parent;
|
*parent = rep.parent;
|
||||||
|
@ -186,15 +186,14 @@ ExpandQuarkTable(void)
|
|||||||
newmask = (oldmask << 1) + 1;
|
newmask = (oldmask << 1) + 1;
|
||||||
else {
|
else {
|
||||||
if (!stringTable) {
|
if (!stringTable) {
|
||||||
stringTable = (XrmString **)Xmalloc(sizeof(XrmString *) *
|
stringTable = Xmalloc(sizeof(XrmString *) * CHUNKPER);
|
||||||
CHUNKPER);
|
|
||||||
if (!stringTable)
|
if (!stringTable)
|
||||||
return False;
|
return False;
|
||||||
stringTable[0] = (XrmString *)NULL;
|
stringTable[0] = (XrmString *)NULL;
|
||||||
}
|
}
|
||||||
#ifdef PERMQ
|
#ifdef PERMQ
|
||||||
if (!permTable)
|
if (!permTable)
|
||||||
permTable = (Bits **)Xmalloc(sizeof(Bits *) * CHUNKPER);
|
permTable = Xmalloc(sizeof(Bits *) * CHUNKPER);
|
||||||
if (!permTable)
|
if (!permTable)
|
||||||
return False;
|
return False;
|
||||||
#endif
|
#endif
|
||||||
@ -289,13 +288,13 @@ nomatch: if (!rehash)
|
|||||||
q = nextQuark;
|
q = nextQuark;
|
||||||
if (!(q & QUANTUMMASK)) {
|
if (!(q & QUANTUMMASK)) {
|
||||||
if (!(q & CHUNKMASK)) {
|
if (!(q & CHUNKMASK)) {
|
||||||
if (!(new = Xrealloc((char *)stringTable,
|
if (!(new = Xrealloc(stringTable,
|
||||||
sizeof(XrmString *) *
|
sizeof(XrmString *) *
|
||||||
((q >> QUANTUMSHIFT) + CHUNKPER))))
|
((q >> QUANTUMSHIFT) + CHUNKPER))))
|
||||||
goto fail;
|
goto fail;
|
||||||
stringTable = (XrmString **)new;
|
stringTable = (XrmString **)new;
|
||||||
#ifdef PERMQ
|
#ifdef PERMQ
|
||||||
if (!(new = Xrealloc((char *)permTable,
|
if (!(new = Xrealloc(permTable,
|
||||||
sizeof(Bits *) *
|
sizeof(Bits *) *
|
||||||
((q >> QUANTUMSHIFT) + CHUNKPER))))
|
((q >> QUANTUMSHIFT) + CHUNKPER))))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
@ -191,7 +191,7 @@ XReadBitmapFileData (
|
|||||||
bytes_per_line = (ww+7)/8 + padding;
|
bytes_per_line = (ww+7)/8 + padding;
|
||||||
|
|
||||||
size = bytes_per_line * hh;
|
size = bytes_per_line * hh;
|
||||||
bits = (unsigned char *) Xmalloc ((unsigned int) size);
|
bits = Xmalloc (size);
|
||||||
if (!bits)
|
if (!bits)
|
||||||
RETURN (BitmapNoMemory);
|
RETURN (BitmapNoMemory);
|
||||||
|
|
||||||
|
@ -139,9 +139,9 @@ XCreateRegion(void)
|
|||||||
{
|
{
|
||||||
Region temp;
|
Region temp;
|
||||||
|
|
||||||
if (! (temp = ( Region )Xmalloc( (unsigned) sizeof( REGION ))))
|
if (! (temp = Xmalloc(sizeof( REGION ))))
|
||||||
return (Region) NULL;
|
return (Region) NULL;
|
||||||
if (! (temp->rects = ( BOX * )Xmalloc( (unsigned) sizeof( BOX )))) {
|
if (! (temp->rects = Xmalloc(sizeof( BOX )))) {
|
||||||
Xfree((char *) temp);
|
Xfree((char *) temp);
|
||||||
return (Region) NULL;
|
return (Region) NULL;
|
||||||
}
|
}
|
||||||
@ -521,9 +521,9 @@ miRegionCopy(
|
|||||||
{
|
{
|
||||||
BOX *prevRects = dstrgn->rects;
|
BOX *prevRects = dstrgn->rects;
|
||||||
|
|
||||||
if (! (dstrgn->rects = (BOX *)
|
dstrgn->rects = Xrealloc(dstrgn->rects,
|
||||||
Xrealloc((char *) dstrgn->rects,
|
rgn->numRects * (sizeof(BOX)));
|
||||||
(unsigned) rgn->numRects * (sizeof(BOX))))) {
|
if (! dstrgn->rects) {
|
||||||
Xfree(prevRects);
|
Xfree(prevRects);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -788,8 +788,7 @@ miRegionOp(
|
|||||||
*/
|
*/
|
||||||
newReg->size = max(reg1->numRects,reg2->numRects) * 2;
|
newReg->size = max(reg1->numRects,reg2->numRects) * 2;
|
||||||
|
|
||||||
if (! (newReg->rects = (BoxPtr)
|
if (! (newReg->rects = Xmalloc (sizeof(BoxRec) * newReg->size))) {
|
||||||
Xmalloc ((unsigned) (sizeof(BoxRec) * newReg->size)))) {
|
|
||||||
newReg->size = 0;
|
newReg->size = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -980,8 +979,8 @@ miRegionOp(
|
|||||||
{
|
{
|
||||||
BoxPtr prev_rects = newReg->rects;
|
BoxPtr prev_rects = newReg->rects;
|
||||||
newReg->size = newReg->numRects;
|
newReg->size = newReg->numRects;
|
||||||
newReg->rects = (BoxPtr) Xrealloc ((char *) newReg->rects,
|
newReg->rects = Xrealloc (newReg->rects,
|
||||||
(unsigned) (sizeof(BoxRec) * newReg->size));
|
sizeof(BoxRec) * newReg->size);
|
||||||
if (! newReg->rects)
|
if (! newReg->rects)
|
||||||
newReg->rects = prev_rects;
|
newReg->rects = prev_rects;
|
||||||
}
|
}
|
||||||
@ -993,7 +992,7 @@ miRegionOp(
|
|||||||
*/
|
*/
|
||||||
newReg->size = 1;
|
newReg->size = 1;
|
||||||
Xfree((char *) newReg->rects);
|
Xfree((char *) newReg->rects);
|
||||||
newReg->rects = (BoxPtr) Xmalloc(sizeof(BoxRec));
|
newReg->rects = Xmalloc(sizeof(BoxRec));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Xfree ((char *) oldRects);
|
Xfree ((char *) oldRects);
|
||||||
|
@ -85,7 +85,7 @@ _XRegisterFilterByMask(
|
|||||||
{
|
{
|
||||||
XFilterEventRec *rec;
|
XFilterEventRec *rec;
|
||||||
|
|
||||||
rec = (XFilterEventList)Xmalloc(sizeof(XFilterEventRec));
|
rec = Xmalloc(sizeof(XFilterEventRec));
|
||||||
if (!rec)
|
if (!rec)
|
||||||
return;
|
return;
|
||||||
rec->window = window;
|
rec->window = window;
|
||||||
@ -117,7 +117,7 @@ _XRegisterFilterByType(
|
|||||||
{
|
{
|
||||||
XFilterEventRec *rec;
|
XFilterEventRec *rec;
|
||||||
|
|
||||||
rec = (XFilterEventList)Xmalloc(sizeof(XFilterEventRec));
|
rec = Xmalloc(sizeof(XFilterEventRec));
|
||||||
if (!rec)
|
if (!rec)
|
||||||
return;
|
return;
|
||||||
rec->window = window;
|
rec->window = window;
|
||||||
|
@ -52,7 +52,7 @@ XSetFontPath (
|
|||||||
}
|
}
|
||||||
nbytes = (n + 3) & ~3;
|
nbytes = (n + 3) & ~3;
|
||||||
req->length += nbytes >> 2;
|
req->length += nbytes >> 2;
|
||||||
if ((p = (char *) Xmalloc ((unsigned) nbytes))) {
|
if ((p = Xmalloc (nbytes))) {
|
||||||
/*
|
/*
|
||||||
* pack into counted strings.
|
* pack into counted strings.
|
||||||
*/
|
*/
|
||||||
|
@ -184,7 +184,7 @@ XSetIconSizes (
|
|||||||
#define size_of_the_real_thing sizeof /* avoid grepping screwups */
|
#define size_of_the_real_thing sizeof /* avoid grepping screwups */
|
||||||
unsigned nbytes = count * size_of_the_real_thing(xPropIconSize);
|
unsigned nbytes = count * size_of_the_real_thing(xPropIconSize);
|
||||||
#undef size_of_the_real_thing
|
#undef size_of_the_real_thing
|
||||||
if ((prop = pp = (xPropIconSize *) Xmalloc (nbytes))) {
|
if ((prop = pp = Xmalloc (nbytes))) {
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
pp->minWidth = list->min_width;
|
pp->minWidth = list->min_width;
|
||||||
pp->minHeight = list->min_height;
|
pp->minHeight = list->min_height;
|
||||||
@ -216,7 +216,7 @@ XSetCommand (
|
|||||||
for (i = 0, nbytes = 0; i < argc; i++) {
|
for (i = 0, nbytes = 0; i < argc; i++) {
|
||||||
nbytes += safestrlen(argv[i]) + 1;
|
nbytes += safestrlen(argv[i]) + 1;
|
||||||
}
|
}
|
||||||
if ((bp = buf = Xmalloc((unsigned) nbytes))) {
|
if ((bp = buf = Xmalloc(nbytes))) {
|
||||||
/* copy arguments into single buffer */
|
/* copy arguments into single buffer */
|
||||||
for (i = 0; i < argc; i++) {
|
for (i = 0; i < argc; i++) {
|
||||||
if (argv[i]) {
|
if (argv[i]) {
|
||||||
@ -299,7 +299,7 @@ XSetClassHint(
|
|||||||
|
|
||||||
len_nm = safestrlen(classhint->res_name);
|
len_nm = safestrlen(classhint->res_name);
|
||||||
len_cl = safestrlen(classhint->res_class);
|
len_cl = safestrlen(classhint->res_class);
|
||||||
if ((class_string = s = Xmalloc((unsigned) (len_nm + len_cl + 2)))) {
|
if ((class_string = s = Xmalloc(len_nm + len_cl + 2))) {
|
||||||
if (len_nm) {
|
if (len_nm) {
|
||||||
strcpy(s, classhint->res_name);
|
strcpy(s, classhint->res_name);
|
||||||
s += len_nm + 1;
|
s += len_nm + 1;
|
||||||
|
@ -78,7 +78,7 @@ Status XStringListToTextProperty (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
proto.value = (unsigned char *) Xmalloc (1); /* easier for client */
|
proto.value = Xmalloc (1); /* easier for client */
|
||||||
if (!proto.value) return False;
|
if (!proto.value) return False;
|
||||||
|
|
||||||
proto.value[0] = '\0';
|
proto.value[0] = '\0';
|
||||||
|
@ -72,10 +72,10 @@ Status XTextPropertyToStringList (
|
|||||||
/*
|
/*
|
||||||
* allocate list and duplicate
|
* allocate list and duplicate
|
||||||
*/
|
*/
|
||||||
list = (char **) Xmalloc (nelements * sizeof (char *));
|
list = Xmalloc (nelements * sizeof (char *));
|
||||||
if (!list) return False;
|
if (!list) return False;
|
||||||
|
|
||||||
start = (char *) Xmalloc ((datalen + 1) * sizeof (char)); /* for <NUL> */
|
start = Xmalloc ((datalen + 1) * sizeof (char)); /* for <NUL> */
|
||||||
if (!start) {
|
if (!start) {
|
||||||
Xfree ((char *) list);
|
Xfree ((char *) list);
|
||||||
return False;
|
return False;
|
||||||
|
@ -75,8 +75,7 @@ XVisualInfo *XGetVisualInfo(
|
|||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
total = 10;
|
total = 10;
|
||||||
if (! (vip_base = vip = (XVisualInfo *)
|
if (! (vip_base = vip = Xmalloc(sizeof(XVisualInfo) * total))) {
|
||||||
Xmalloc((unsigned) (sizeof(XVisualInfo) * total)))) {
|
|
||||||
UnlockDisplay(dpy);
|
UnlockDisplay(dpy);
|
||||||
return (XVisualInfo *) NULL;
|
return (XVisualInfo *) NULL;
|
||||||
}
|
}
|
||||||
@ -132,9 +131,8 @@ XVisualInfo *XGetVisualInfo(
|
|||||||
{
|
{
|
||||||
XVisualInfo *old_vip_base = vip_base;
|
XVisualInfo *old_vip_base = vip_base;
|
||||||
total += 10;
|
total += 10;
|
||||||
if (! (vip_base = (XVisualInfo *)
|
if (! (vip_base = Xrealloc(vip_base,
|
||||||
Xrealloc((char *) vip_base,
|
sizeof(XVisualInfo) * total))) {
|
||||||
(unsigned) (sizeof(XVisualInfo) * total)))) {
|
|
||||||
Xfree((char *) old_vip_base);
|
Xfree((char *) old_vip_base);
|
||||||
UnlockDisplay(dpy);
|
UnlockDisplay(dpy);
|
||||||
return (XVisualInfo *) NULL;
|
return (XVisualInfo *) NULL;
|
||||||
|
@ -53,7 +53,7 @@ static char *Format_Image(
|
|||||||
bytes_per_line = (width+7)/8;
|
bytes_per_line = (width+7)/8;
|
||||||
*resultsize = bytes_per_line * height; /* Calculate size of data */
|
*resultsize = bytes_per_line * height; /* Calculate size of data */
|
||||||
|
|
||||||
data = (char *) Xmalloc( *resultsize ); /* Get space for data */
|
data = Xmalloc( *resultsize ); /* Get space for data */
|
||||||
if (!data)
|
if (!data)
|
||||||
return(ERR_RETURN);
|
return(ERR_RETURN);
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#ifndef _XINTATOM_H_
|
#ifndef _XINTATOM_H_
|
||||||
#define _XINTATOM_H_ 1
|
#define _XINTATOM_H_ 1
|
||||||
|
|
||||||
|
#include <X11/Xlib.h>
|
||||||
#include <X11/Xfuncproto.h>
|
#include <X11/Xfuncproto.h>
|
||||||
|
|
||||||
/* IntAtom.c */
|
/* IntAtom.c */
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
#define _XINTCONN_H_ 1
|
#define _XINTCONN_H_ 1
|
||||||
|
|
||||||
#include <X11/Xfuncproto.h>
|
#include <X11/Xfuncproto.h>
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
_XFUNCPROTOBEGIN
|
_XFUNCPROTOBEGIN
|
||||||
|
|
||||||
|
@ -152,7 +152,7 @@ Bool _XPollfdCacheInit(
|
|||||||
#ifdef USE_POLL
|
#ifdef USE_POLL
|
||||||
struct pollfd *pfp;
|
struct pollfd *pfp;
|
||||||
|
|
||||||
pfp = (struct pollfd *)Xmalloc(POLLFD_CACHE_SIZE * sizeof(struct pollfd));
|
pfp = Xmalloc(POLLFD_CACHE_SIZE * sizeof(struct pollfd));
|
||||||
if (!pfp)
|
if (!pfp)
|
||||||
return False;
|
return False;
|
||||||
pfp[0].fd = dpy->fd;
|
pfp[0].fd = dpy->fd;
|
||||||
@ -374,10 +374,10 @@ _XRegisterInternalConnection(
|
|||||||
struct _XConnWatchInfo *watchers;
|
struct _XConnWatchInfo *watchers;
|
||||||
XPointer *wd;
|
XPointer *wd;
|
||||||
|
|
||||||
new_conni = (struct _XConnectionInfo*)Xmalloc(sizeof(struct _XConnectionInfo));
|
new_conni = Xmalloc(sizeof(struct _XConnectionInfo));
|
||||||
if (!new_conni)
|
if (!new_conni)
|
||||||
return 0;
|
return 0;
|
||||||
new_conni->watch_data = (XPointer *)Xmalloc(dpy->watcher_count * sizeof(XPointer));
|
new_conni->watch_data = Xmalloc(dpy->watcher_count * sizeof(XPointer));
|
||||||
if (!new_conni->watch_data) {
|
if (!new_conni->watch_data) {
|
||||||
Xfree(new_conni);
|
Xfree(new_conni);
|
||||||
return 0;
|
return 0;
|
||||||
@ -464,7 +464,7 @@ XInternalConnectionNumbers(
|
|||||||
count = 0;
|
count = 0;
|
||||||
for (info_list=dpy->im_fd_info; info_list; info_list=info_list->next)
|
for (info_list=dpy->im_fd_info; info_list; info_list=info_list->next)
|
||||||
count++;
|
count++;
|
||||||
fd_list = (int*) Xmalloc (count * sizeof(int));
|
fd_list = Xmalloc (count * sizeof(int));
|
||||||
if (!fd_list) {
|
if (!fd_list) {
|
||||||
UnlockDisplay(dpy);
|
UnlockDisplay(dpy);
|
||||||
return 0;
|
return 0;
|
||||||
@ -537,9 +537,8 @@ XAddConnectionWatch(
|
|||||||
|
|
||||||
/* allocate new watch data */
|
/* allocate new watch data */
|
||||||
for (info_list=dpy->im_fd_info; info_list; info_list=info_list->next) {
|
for (info_list=dpy->im_fd_info; info_list; info_list=info_list->next) {
|
||||||
wd_array = (XPointer *)Xrealloc((char *)info_list->watch_data,
|
wd_array = Xrealloc(info_list->watch_data,
|
||||||
(dpy->watcher_count + 1) *
|
(dpy->watcher_count + 1) * sizeof(XPointer));
|
||||||
sizeof(XPointer));
|
|
||||||
if (!wd_array) {
|
if (!wd_array) {
|
||||||
UnlockDisplay(dpy);
|
UnlockDisplay(dpy);
|
||||||
return 0;
|
return 0;
|
||||||
@ -548,7 +547,7 @@ XAddConnectionWatch(
|
|||||||
wd_array[dpy->watcher_count] = NULL; /* for cleanliness */
|
wd_array[dpy->watcher_count] = NULL; /* for cleanliness */
|
||||||
}
|
}
|
||||||
|
|
||||||
new_watcher = (struct _XConnWatchInfo*)Xmalloc(sizeof(struct _XConnWatchInfo));
|
new_watcher = Xmalloc(sizeof(struct _XConnWatchInfo));
|
||||||
if (!new_watcher) {
|
if (!new_watcher) {
|
||||||
UnlockDisplay(dpy);
|
UnlockDisplay(dpy);
|
||||||
return 0;
|
return 0;
|
||||||
@ -756,8 +755,7 @@ void _XEnq(
|
|||||||
/* If dpy->qfree is non-NULL do this, else malloc a new one. */
|
/* If dpy->qfree is non-NULL do this, else malloc a new one. */
|
||||||
dpy->qfree = qelt->next;
|
dpy->qfree = qelt->next;
|
||||||
}
|
}
|
||||||
else if ((qelt =
|
else if ((qelt = Xmalloc(sizeof(_XQEvent))) == NULL) {
|
||||||
(_XQEvent *) Xmalloc((unsigned)sizeof(_XQEvent))) == NULL) {
|
|
||||||
/* Malloc call failed! */
|
/* Malloc call failed! */
|
||||||
ESET(ENOMEM);
|
ESET(ENOMEM);
|
||||||
_XIOError(dpy);
|
_XIOError(dpy);
|
||||||
@ -1518,7 +1516,7 @@ char *_XAllocScratch(
|
|||||||
{
|
{
|
||||||
if (nbytes > dpy->scratch_length) {
|
if (nbytes > dpy->scratch_length) {
|
||||||
if (dpy->scratch_buffer) Xfree (dpy->scratch_buffer);
|
if (dpy->scratch_buffer) Xfree (dpy->scratch_buffer);
|
||||||
if ((dpy->scratch_buffer = Xmalloc((unsigned) nbytes)))
|
if ((dpy->scratch_buffer = Xmalloc(nbytes)))
|
||||||
dpy->scratch_length = nbytes;
|
dpy->scratch_length = nbytes;
|
||||||
else dpy->scratch_length = 0;
|
else dpy->scratch_length = 0;
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
#ifndef XPRIVATE_H
|
#ifndef XPRIVATE_H
|
||||||
#define XPRIVATE_H
|
#define XPRIVATE_H
|
||||||
|
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
extern _X_HIDDEN void _XIDHandler(Display *dpy);
|
extern _X_HIDDEN void _XIDHandler(Display *dpy);
|
||||||
extern _X_HIDDEN void _XSeqSyncFunction(Display *dpy);
|
extern _X_HIDDEN void _XSeqSyncFunction(Display *dpy);
|
||||||
extern _X_HIDDEN void _XSetPrivSyncFunction(Display *dpy);
|
extern _X_HIDDEN void _XSetPrivSyncFunction(Display *dpy);
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
#ifndef _XRESINTERNAL_H_
|
#ifndef _XRESINTERNAL_H_
|
||||||
#define _XRESINTERNAL_H_
|
#define _XRESINTERNAL_H_
|
||||||
|
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
#include <X11/Xresource.h>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
|
||||||
/* type defines */
|
/* type defines */
|
||||||
|
@ -495,7 +495,7 @@ static XrmDatabase NewDatabase(void)
|
|||||||
{
|
{
|
||||||
register XrmDatabase db;
|
register XrmDatabase db;
|
||||||
|
|
||||||
db = (XrmDatabase) Xmalloc(sizeof(XrmHashBucketRec));
|
db = Xmalloc(sizeof(XrmHashBucketRec));
|
||||||
if (db) {
|
if (db) {
|
||||||
_XCreateMutex(&db->linfo);
|
_XCreateMutex(&db->linfo);
|
||||||
db->table = (NTable)NULL;
|
db->table = (NTable)NULL;
|
||||||
@ -828,7 +828,7 @@ static void PutEntry(
|
|||||||
NTable *nprev, *firstpprev;
|
NTable *nprev, *firstpprev;
|
||||||
|
|
||||||
#define NEWTABLE(q,i) \
|
#define NEWTABLE(q,i) \
|
||||||
table = (NTable)Xmalloc(sizeof(LTableRec)); \
|
table = Xmalloc(sizeof(LTableRec)); \
|
||||||
if (!table) \
|
if (!table) \
|
||||||
return; \
|
return; \
|
||||||
table->name = q; \
|
table->name = q; \
|
||||||
@ -841,7 +841,7 @@ static void PutEntry(
|
|||||||
nprev = NodeBuckets(table); \
|
nprev = NodeBuckets(table); \
|
||||||
} else { \
|
} else { \
|
||||||
table->leaf = 1; \
|
table->leaf = 1; \
|
||||||
if (!(nprev = (NTable *)Xmalloc(sizeof(VEntry *)))) {\
|
if (!(nprev = Xmalloc(sizeof(VEntry *)))) {\
|
||||||
Xfree(table); \
|
Xfree(table); \
|
||||||
return; \
|
return; \
|
||||||
} \
|
} \
|
||||||
@ -955,9 +955,8 @@ static void PutEntry(
|
|||||||
prev = nprev;
|
prev = nprev;
|
||||||
}
|
}
|
||||||
/* now allocate the value entry */
|
/* now allocate the value entry */
|
||||||
entry = (VEntry)Xmalloc(((type == XrmQString) ?
|
entry = Xmalloc(((type == XrmQString) ?
|
||||||
sizeof(VEntryRec) : sizeof(DEntryRec)) +
|
sizeof(VEntryRec) : sizeof(DEntryRec)) + value->size);
|
||||||
value->size);
|
|
||||||
if (!entry)
|
if (!entry)
|
||||||
return;
|
return;
|
||||||
entry->name = q = *quarks;
|
entry->name = q = *quarks;
|
||||||
@ -987,13 +986,12 @@ static void PutEntry(
|
|||||||
if (resourceQuarks) {
|
if (resourceQuarks) {
|
||||||
unsigned char *prevQuarks = resourceQuarks;
|
unsigned char *prevQuarks = resourceQuarks;
|
||||||
|
|
||||||
resourceQuarks = (unsigned char *)Xrealloc((char *)resourceQuarks,
|
resourceQuarks = Xrealloc(resourceQuarks, size);
|
||||||
size);
|
|
||||||
if (!resourceQuarks) {
|
if (!resourceQuarks) {
|
||||||
Xfree(prevQuarks);
|
Xfree(prevQuarks);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
resourceQuarks = (unsigned char *)Xmalloc(size);
|
resourceQuarks = Xmalloc(size);
|
||||||
if (resourceQuarks) {
|
if (resourceQuarks) {
|
||||||
bzero((char *)&resourceQuarks[oldsize], size - oldsize);
|
bzero((char *)&resourceQuarks[oldsize], size - oldsize);
|
||||||
maxResourceQuark = (size << 3) - 1;
|
maxResourceQuark = (size << 3) - 1;
|
||||||
@ -1138,11 +1136,11 @@ static void GetDatabase(
|
|||||||
|
|
||||||
str_len = strlen (str);
|
str_len = strlen (str);
|
||||||
if (DEF_BUFF_SIZE > str_len) lhs = lhs_s;
|
if (DEF_BUFF_SIZE > str_len) lhs = lhs_s;
|
||||||
else if ((lhs = (char*) Xmalloc (str_len)) == NULL)
|
else if ((lhs = Xmalloc (str_len)) == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
alloc_chars = DEF_BUFF_SIZE < str_len ? str_len : DEF_BUFF_SIZE;
|
alloc_chars = DEF_BUFF_SIZE < str_len ? str_len : DEF_BUFF_SIZE;
|
||||||
if ((rhs = (char*) Xmalloc (alloc_chars)) == NULL) {
|
if ((rhs = Xmalloc (alloc_chars)) == NULL) {
|
||||||
if (lhs != lhs_s) Xfree (lhs);
|
if (lhs != lhs_s) Xfree (lhs);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -82,7 +82,7 @@ _Xthread_waiter(void)
|
|||||||
struct _xthread_waiter *me;
|
struct _xthread_waiter *me;
|
||||||
|
|
||||||
if (!(me = TlsGetValue(_X_TlsIndex))) {
|
if (!(me = TlsGetValue(_X_TlsIndex))) {
|
||||||
me = (struct _xthread_waiter *)xmalloc(sizeof(struct _xthread_waiter));
|
me = xmalloc(sizeof(struct _xthread_waiter));
|
||||||
me->sem = CreateSemaphore(NULL, 0, 1, NULL);
|
me->sem = CreateSemaphore(NULL, 0, 1, NULL);
|
||||||
me->next = NULL;
|
me->next = NULL;
|
||||||
TlsSetValue(_X_TlsIndex, me);
|
TlsSetValue(_X_TlsIndex, me);
|
||||||
@ -249,7 +249,7 @@ static struct _XCVList *_XCreateCVL(
|
|||||||
dpy->lock->free_cvls = cvl->next;
|
dpy->lock->free_cvls = cvl->next;
|
||||||
dpy->lock->num_free_cvls--;
|
dpy->lock->num_free_cvls--;
|
||||||
} else {
|
} else {
|
||||||
cvl = (struct _XCVList *)Xmalloc(sizeof(struct _XCVList));
|
cvl = Xmalloc(sizeof(struct _XCVList));
|
||||||
if (!cvl)
|
if (!cvl)
|
||||||
return NULL;
|
return NULL;
|
||||||
cvl->cv = xcondition_malloc();
|
cvl->cv = xcondition_malloc();
|
||||||
@ -512,10 +512,10 @@ void _XUserUnlockDisplay(
|
|||||||
static int _XInitDisplayLock(
|
static int _XInitDisplayLock(
|
||||||
Display *dpy)
|
Display *dpy)
|
||||||
{
|
{
|
||||||
dpy->lock_fns = (struct _XLockPtrs*)Xmalloc(sizeof(struct _XLockPtrs));
|
dpy->lock_fns = Xmalloc(sizeof(struct _XLockPtrs));
|
||||||
if (dpy->lock_fns == NULL)
|
if (dpy->lock_fns == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
dpy->lock = (struct _XLockInfo *)Xmalloc(sizeof(struct _XLockInfo));
|
dpy->lock = Xmalloc(sizeof(struct _XLockInfo));
|
||||||
if (dpy->lock == NULL) {
|
if (dpy->lock == NULL) {
|
||||||
_XFreeDisplayLock(dpy);
|
_XFreeDisplayLock(dpy);
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -36,6 +36,8 @@ in this Software without prior written authorization from The Open Group.
|
|||||||
|
|
||||||
#define xmalloc(s) Xmalloc(s)
|
#define xmalloc(s) Xmalloc(s)
|
||||||
#define xfree(s) Xfree(s)
|
#define xfree(s) Xfree(s)
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
#include <X11/Xlibint.h>
|
||||||
#include <X11/Xthreads.h>
|
#include <X11/Xthreads.h>
|
||||||
|
|
||||||
struct _XCVList {
|
struct _XCVList {
|
||||||
|
@ -145,12 +145,11 @@ int *num_codeset;
|
|||||||
if(!_XlcCompareISOLatin1(charset_str,buf)){
|
if(!_XlcCompareISOLatin1(charset_str,buf)){
|
||||||
num_ret += 1;
|
num_ret += 1;
|
||||||
if(num_ret == 1){
|
if(num_ret == 1){
|
||||||
ret = (int *)Xmalloc(sizeof(int));
|
ret = Xmalloc(sizeof(int));
|
||||||
} else {
|
} else {
|
||||||
int *prev_ret = ret;
|
int *prev_ret = ret;
|
||||||
|
|
||||||
ret =
|
ret = Xrealloc(ret, num_ret * sizeof(int));
|
||||||
(int *)Xrealloc(ret,num_ret*sizeof(int));
|
|
||||||
if (ret == NULL){
|
if (ret == NULL){
|
||||||
Xfree(prev_ret);
|
Xfree(prev_ret);
|
||||||
}
|
}
|
||||||
@ -272,7 +271,7 @@ int *num_gr;
|
|||||||
sprintf(buf, "fs%d.charset.udc_area", codeset-1);
|
sprintf(buf, "fs%d.charset.udc_area", codeset-1);
|
||||||
_XlcGetLocaleDataBase(lcd, "XLC_FONTSET", buf, &value, &count);
|
_XlcGetLocaleDataBase(lcd, "XLC_FONTSET", buf, &value, &count);
|
||||||
if(count > 0){
|
if(count > 0){
|
||||||
udc = (_XUDCGlyphRegion *)Xmalloc(count * sizeof(_XUDCGlyphRegion));
|
udc = Xmalloc(count * sizeof(_XUDCGlyphRegion));
|
||||||
if(udc == NULL){
|
if(udc == NULL){
|
||||||
_xudc_utyerrno = 0x03 ;
|
_xudc_utyerrno = 0x03 ;
|
||||||
_xudc_utyerrno |= (0x0b<<8) ;
|
_xudc_utyerrno |= (0x0b<<8) ;
|
||||||
@ -524,7 +523,7 @@ int *num_cr;
|
|||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
crr = (_XUDCCodeRegion *)Xmalloc(num_gr*sizeof(_XUDCCodeRegion));
|
crr = Xmalloc(num_gr * sizeof(_XUDCCodeRegion));
|
||||||
if(crr == NULL){
|
if(crr == NULL){
|
||||||
Xfree(gr);
|
Xfree(gr);
|
||||||
_xudc_utyerrno = 0x03 ;
|
_xudc_utyerrno = 0x03 ;
|
||||||
|
@ -484,6 +484,8 @@ unsigned mask;
|
|||||||
|
|
||||||
if ( xkb->device_spec == XkbUseCoreKbd )
|
if ( xkb->device_spec == XkbUseCoreKbd )
|
||||||
xkb->device_spec= rep->deviceID;
|
xkb->device_spec= rep->deviceID;
|
||||||
|
if ( rep->maxKeyCode < rep->minKeyCode )
|
||||||
|
return BadImplementation;
|
||||||
xkb->min_key_code = rep->minKeyCode;
|
xkb->min_key_code = rep->minKeyCode;
|
||||||
xkb->max_key_code = rep->maxKeyCode;
|
xkb->max_key_code = rep->maxKeyCode;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user