[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