[Xorg-commit] xc/lib/FS FSFontInfo.c,1.1.4.1,1.1.4.2 FSFtNames.c,1.1.4.1,1.1.4.2 FSGetCats.c,1.1.4.1,1.1.4.2 FSListCats.c,1.1.4.1,1.1.4.2 FSListExt.c,1.1.4.1,1.1.4.2 FSOpenFont.c,1.1.4.1,1.1.4.2 FSOpenServ.c,1.1.4.2,1.1.4.3 FSQGlyphs.c,1.1.4.1,1.1.4.2 FSQXExt.c,1.1.4.2,1.1.4.3 FSQXInfo.c,1.1.4.1,1.1.4.2
Kaleb Keithley
xorg-commit at pdx.freedesktop.org
Wed May 9 17:30:30 EEST 2007
Committed by: kaleb
Update of /cvs/xorg/xc/lib/FS
In directory pdx:/home/kaleb/xorg/xc.XORG-CURRENT/lib/FS
Modified Files:
Tag: XORG-CURRENT
FSFontInfo.c FSFtNames.c FSGetCats.c FSListCats.c FSListExt.c
FSOpenFont.c FSOpenServ.c FSQGlyphs.c FSQXExt.c FSQXInfo.c
Log Message:
merge most of XFree86 RC3 (4.3.99.903) from vendor branch.
bug #214
Index: FSFontInfo.c
===================================================================
RCS file: /cvs/xorg/xc/lib/FS/FSFontInfo.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/FSFontInfo.c 26 Nov 2003 22:48:31 -0000 1.1.4.1
+++ b/FSFontInfo.c 23 Feb 2004 21:33:51 -0000 1.1.4.2
@@ -23,7 +23,7 @@
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
-/* $XFree86: xc/lib/FS/FSFontInfo.c,v 1.5 2003/10/23 15:23:24 tsi Exp $ */
+/* $XFree86: xc/lib/FS/FSFontInfo.c,v 1.6 2003/12/22 17:48:02 tsi Exp $ */
/*
@@ -244,8 +244,10 @@
pi[i]->num_offsets = local_pi.num_offsets;
pi[i]->data_len = local_pi.data_len;
+#if SIZE_MAX <= UINT_MAX
if (pi[i]->num_offsets > SIZE_MAX / sizeof(FSPropOffset))
goto badmem;
+#endif
po[i] = (FSPropOffset *)
FSmalloc(pi[i]->num_offsets * sizeof(FSPropOffset));
Index: FSFtNames.c
===================================================================
RCS file: /cvs/xorg/xc/lib/FS/FSFtNames.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/FSFtNames.c 26 Nov 2003 22:48:31 -0000 1.1.4.1
+++ b/FSFtNames.c 23 Feb 2004 21:33:51 -0000 1.1.4.2
@@ -23,7 +23,7 @@
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
-/* $XFree86: xc/lib/FS/FSFtNames.c,v 1.6 2003/10/23 15:23:24 tsi Exp $ */
+/* $XFree86: xc/lib/FS/FSFtNames.c,v 1.7 2003/12/22 17:48:02 tsi Exp $ */
/*
@@ -78,8 +78,12 @@
(SIZEOF(fsListFontsReply) - SIZEOF(fsGenericReply)) >> 2, fsFalse))
return (char **) 0;
- if (rep.nFonts && rep.nFonts <= SIZE_MAX / sizeof(char *)
- && rep.length <= (SIZE_MAX >> 2)) {
+ if (rep.nFonts
+#if (SIZE_MAX >> 2) <= UINT_MAX
+ && rep.nFonts <= SIZE_MAX / sizeof(char *)
+ && rep.length <= (SIZE_MAX >> 2)
+#endif
+ ) {
flist = (char **) FSmalloc((unsigned) rep.nFonts * sizeof(char *));
rlen = (rep.length << 2) - SIZEOF(fsListFontsReply);
c = (char *) FSmalloc((unsigned) (rlen + 1));
Index: FSGetCats.c
===================================================================
RCS file: /cvs/xorg/xc/lib/FS/FSGetCats.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/FSGetCats.c 26 Nov 2003 22:48:31 -0000 1.1.4.1
+++ b/FSGetCats.c 23 Feb 2004 21:33:51 -0000 1.1.4.2
@@ -23,7 +23,7 @@
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
-/* $XFree86: xc/lib/FS/FSGetCats.c,v 1.6 2003/10/23 15:23:24 tsi Exp $ */
+/* $XFree86: xc/lib/FS/FSGetCats.c,v 1.7 2003/12/22 17:48:02 tsi Exp $ */
/*
@@ -72,8 +72,12 @@
SyncHandle();
return (char **) NULL;
}
- if (rep.num_catalogues && rep.num_catalogues <= SIZE_MAX/sizeof(char *)
- && rep.length <= (SIZE_MAX >> 2)) {
+ if (rep.num_catalogues
+#if (SIZE_MAX >> 2) <= UINT_MAX
+ && rep.num_catalogues <= SIZE_MAX/sizeof(char *)
+ && rep.length <= (SIZE_MAX >> 2)
+#endif
+ ) {
list = (char **)
FSmalloc((unsigned) (rep.num_catalogues * sizeof(char *)));
rlen = (rep.length << 2) - SIZEOF(fsGetCataloguesReply);
Index: FSListCats.c
===================================================================
RCS file: /cvs/xorg/xc/lib/FS/FSListCats.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/FSListCats.c 26 Nov 2003 22:48:31 -0000 1.1.4.1
+++ b/FSListCats.c 23 Feb 2004 21:33:51 -0000 1.1.4.2
@@ -23,7 +23,7 @@
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
-/* $XFree86: xc/lib/FS/FSListCats.c,v 1.6 2003/10/23 15:23:24 tsi Exp $ */
+/* $XFree86: xc/lib/FS/FSListCats.c,v 1.7 2003/12/22 17:48:02 tsi Exp $ */
/*
@@ -78,8 +78,12 @@
(SIZEOF(fsListCataloguesReply) - SIZEOF(fsGenericReply)) >> 2, fsFalse))
return (char **) 0;
- if (rep.num_catalogues && rep.num_catalogues <= SIZE_MAX/sizeof(char *)
- && rep.length <= (SIZE_MAX>>2)) {
+ if (rep.num_catalogues
+#if (SIZE_MAX >> 2) <= UINT_MAX
+ && rep.num_catalogues <= SIZE_MAX/sizeof(char *)
+ && rep.length <= (SIZE_MAX>>2)
+#endif
+ ) {
clist = (char **)
FSmalloc((unsigned) rep.num_catalogues * sizeof(char *));
rlen = (rep.length << 2) - SIZEOF(fsListCataloguesReply);
Index: FSListExt.c
===================================================================
RCS file: /cvs/xorg/xc/lib/FS/FSListExt.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/FSListExt.c 26 Nov 2003 22:48:31 -0000 1.1.4.1
+++ b/FSListExt.c 23 Feb 2004 21:33:51 -0000 1.1.4.2
@@ -24,7 +24,7 @@
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
-/* $XFree86: xc/lib/FS/FSListExt.c,v 1.6 2003/10/23 15:23:24 tsi Exp $ */
+/* $XFree86: xc/lib/FS/FSListExt.c,v 1.7 2003/12/22 17:48:02 tsi Exp $ */
/*
@@ -73,8 +73,12 @@
SyncHandle();
return (char **) NULL;
}
- if (rep.nExtensions && rep.nExtensions <= SIZE_MAX / sizeof(char *)
- && rep.length <= (SIZE_MAX>>2)) {
+ if (rep.nExtensions
+#if (SIZE_MAX >> 2) <= UINT_MAX
+ && rep.nExtensions <= SIZE_MAX / sizeof(char *)
+ && rep.length <= (SIZE_MAX>>2)
+#endif
+ ) {
list = (char **) FSmalloc((unsigned)(rep.nExtensions * sizeof(char *)));
rlen = (rep.length << 2) - SIZEOF(fsListExtensionsReply);
c = (char *) FSmalloc((unsigned) rlen + 1);
Index: FSOpenFont.c
===================================================================
RCS file: /cvs/xorg/xc/lib/FS/FSOpenFont.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/FSOpenFont.c 17 Nov 2003 19:03:40 -0000 1.1.4.1
+++ b/FSOpenFont.c 23 Feb 2004 21:33:51 -0000 1.1.4.2
@@ -24,7 +24,7 @@
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
-/* $XFree86: xc/lib/FS/FSOpenFont.c,v 1.6 2001/12/14 19:53:33 dawes Exp $ */
+/* $XFree86: xc/lib/FS/FSOpenFont.c,v 1.7 2003/12/22 17:48:02 tsi Exp $ */
/*
@@ -62,7 +62,7 @@
char *name;
Font *otherid;
{
- unsigned char nbytes;
+ unsigned int nbytes;
fsOpenBitmapFontReq *req;
fsOpenBitmapFontReply reply;
Font fid;
Index: FSOpenServ.c
===================================================================
RCS file: /cvs/xorg/xc/lib/FS/FSOpenServ.c,v
retrieving revision 1.1.4.2
retrieving revision 1.1.4.3
diff -u -d -r1.1.4.2 -r1.1.4.3
--- a/FSOpenServ.c 26 Nov 2003 22:48:31 -0000 1.1.4.2
+++ b/FSOpenServ.c 23 Feb 2004 21:33:51 -0000 1.1.4.3
@@ -24,7 +24,7 @@
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
-/* $XFree86: xc/lib/FS/FSOpenServ.c,v 1.8 2003/09/01 20:50:09 herrb Exp $ */
+/* $XFree86: xc/lib/FS/FSOpenServ.c,v 1.9 2003/12/22 17:48:02 tsi Exp $ */
/*
@@ -163,14 +163,20 @@
_FSRead(svr, (char *) alt_data, setuplength);
ad = alt_data;
+#if SIZE_MAX <= UINT_MAX
if (prefix.num_alternates > SIZE_MAX / sizeof(AlternateServer)) {
errno = ENOMEM;
+ FSfree((char *) alt_data);
+ FSfree((char *) svr);
return (FSServer *) 0;
}
+#endif
+
alts = (AlternateServer *)
FSmalloc(sizeof(AlternateServer) * prefix.num_alternates);
if (!alts) {
errno = ENOMEM;
+ FSfree((char *) alt_data);
FSfree((char *) svr);
return (FSServer *) 0;
}
@@ -198,10 +204,11 @@
svr->num_alternates = prefix.num_alternates;
setuplength = prefix.auth_len << 2;
- if (prefix.auth_len > (SIZE_MAX>>2)
+ if (setuplength > (SIZE_MAX>>2)
|| (auth_data = (char *)
(setup = FSmalloc((unsigned) setuplength))) == NULL) {
errno = ENOMEM;
+ FSfree((char *) alts);
FSfree((char *) svr);
return (FSServer *) NULL;
}
@@ -210,6 +217,7 @@
if (prefix.status != AuthSuccess) {
fprintf(stderr, "%s: connection to \"%s\" refused by server\r\n%s: ",
"FSlib", server, "FSlib");
+ FSfree((char *) alts);
FSfree((char *) svr);
FSfree(setup);
return (FSServer *) NULL;
@@ -220,6 +228,8 @@
if ((vendor_string = (char *)
FSmalloc((unsigned) conn.vendor_len + 1)) == NULL) {
errno = ENOMEM;
+ FSfree((char *) auth_data);
+ FSfree((char *) alts);
FSfree((char *) svr);
return (FSServer *) NULL;
}
@@ -276,4 +286,3 @@
return (svr);
}
-
Index: FSQGlyphs.c
===================================================================
RCS file: /cvs/xorg/xc/lib/FS/FSQGlyphs.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/FSQGlyphs.c 26 Nov 2003 22:48:31 -0000 1.1.4.1
+++ b/FSQGlyphs.c 23 Feb 2004 21:33:51 -0000 1.1.4.2
@@ -23,7 +23,7 @@
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
-/* $XFree86: xc/lib/FS/FSQGlyphs.c,v 1.5 2003/10/23 15:23:24 tsi Exp $ */
+/* $XFree86: xc/lib/FS/FSQGlyphs.c,v 1.6 2003/12/22 17:48:02 tsi Exp $ */
/*
@@ -85,20 +85,24 @@
(SIZEOF(fsQueryXBitmaps8Reply) - SIZEOF(fsGenericReply)) >> 2, fsFalse))
return FSBadAlloc;
+#if SIZE_MAX <= UINT_MAX
if (reply.num_chars > SIZE_MAX / sizeof(FSOffset))
return FSBadAlloc;
+#endif
offs = (FSOffset *) FSmalloc(sizeof(FSOffset) * reply.num_chars);
*offsets = offs;
if (!offs)
return FSBadAlloc;
- left = (reply.length << 2) - SIZEOF(fsQueryXBitmaps8Reply)
- - (SIZEOF(fsOffset32) * reply.num_chars);
+#if (SIZE_MAX >> 2) <= UINT_MAX
/* XXX This thest is incomplete */
if (reply.length > (SIZE_MAX >> 2)) {
FSfree((char *) offs);
return FSBadAlloc;
}
+#endif
+ left = (reply.length << 2) - SIZEOF(fsQueryXBitmaps8Reply)
+ - (SIZEOF(fsOffset32) * reply.num_chars);
gd = (unsigned char *) FSmalloc(left);
*glyphdata = gd;
if (!gd) {
@@ -170,19 +174,23 @@
fsFalse))
return FSBadAlloc;
+#if SIZE_MAX <= UINT_MAX
if(reply.num_chars > SIZE_MAX/sizeof(FSOffset))
return FSBadAlloc;
+#endif
offs = (FSOffset *) FSmalloc(sizeof(FSOffset) * reply.num_chars);
*offsets = offs;
if (!offs)
return FSBadAlloc;
- left = (reply.length << 2) - SIZEOF(fsQueryXBitmaps16Reply)
- - (SIZEOF(fsOffset32) * reply.num_chars);
+#if (SIZE_MAX >> 2) <= UINT_MAX
/* XXX - this test is incomplete */
if (reply.length > (SIZE_MAX>>2)) {
FSfree((char *) offs);
return FSBadAlloc;
}
+#endif
+ left = (reply.length << 2) - SIZEOF(fsQueryXBitmaps16Reply)
+ - (SIZEOF(fsOffset32) * reply.num_chars);
gd = (unsigned char *) FSmalloc(left);
*glyphdata = gd;
if (!gd) {
Index: FSQXExt.c
===================================================================
RCS file: /cvs/xorg/xc/lib/FS/FSQXExt.c,v
retrieving revision 1.1.4.2
retrieving revision 1.1.4.3
diff -u -d -r1.1.4.2 -r1.1.4.3
--- a/FSQXExt.c 26 Nov 2003 22:48:31 -0000 1.1.4.2
+++ b/FSQXExt.c 23 Feb 2004 21:33:51 -0000 1.1.4.3
@@ -24,7 +24,7 @@
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
-/* $XFree86: xc/lib/FS/FSQXExt.c,v 1.7 2003/09/01 20:50:09 herrb Exp $ */
+/* $XFree86: xc/lib/FS/FSQXExt.c,v 1.8 2003/12/22 17:48:02 tsi Exp $ */
/*
@@ -93,8 +93,10 @@
fsFalse))
return FSBadAlloc;
+#if SIZE_MAX <= UINT_MAX
if (reply.num_extents > SIZE_MAX / sizeof(FSXCharInfo))
return FSBadAlloc;
+#endif
ext = (FSXCharInfo *) FSmalloc(sizeof(FSXCharInfo) * reply.num_extents);
*extents = ext;
@@ -152,8 +154,10 @@
fsFalse))
return FSBadAlloc;
+#if SIZE_MAX <= UINT_MAX
if (reply.num_extents > SIZE_MAX/sizeof(FSXCharInfo))
return FSBadAlloc;
+#endif
ext = (FSXCharInfo *) FSmalloc(sizeof(FSXCharInfo) * reply.num_extents);
*extents = ext;
Index: FSQXInfo.c
===================================================================
RCS file: /cvs/xorg/xc/lib/FS/FSQXInfo.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/FSQXInfo.c 26 Nov 2003 22:48:31 -0000 1.1.4.1
+++ b/FSQXInfo.c 23 Feb 2004 21:33:51 -0000 1.1.4.2
@@ -23,7 +23,7 @@
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
* SOFTWARE.
*/
-/* $XFree86: xc/lib/FS/FSQXInfo.c,v 1.5 2003/10/23 15:23:24 tsi Exp $ */
+/* $XFree86: xc/lib/FS/FSQXInfo.c,v 1.6 2003/12/22 17:48:02 tsi Exp $ */
/*
@@ -91,8 +91,10 @@
props->num_offsets = local_pi.num_offsets;
props->data_len = local_pi.data_len;
+#if SIZE_MAX <= UINT_MAX
if (props->num_offsets > SIZE_MAX / sizeof(FSPropOffset))
return FSBadAlloc;
+#endif
/* prepare for prop data */
offset_data = (FSPropOffset *)
More information about the xorg-commit
mailing list