[Python-checkins] python/dist/src/PC/os2emx getpathp.c, 1.3, 1.3.10.1

aimacintyre at users.sourceforge.net aimacintyre at users.sourceforge.net
Sun Dec 12 09:35:32 CET 2004


Update of /cvsroot/python/python/dist/src/PC/os2emx
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12714
Modified Files:
 Tag: release23-maint
	getpathp.c 
Log Message:
backport of OS/2 specific fixes related to SF bug # 1003471
Index: getpathp.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/PC/os2emx/getpathp.c,v
retrieving revision 1.3
retrieving revision 1.3.10.1
diff -u -d -r1.3 -r1.3.10.1
--- getpathp.c	22 Apr 2003 03:21:42 -0000	1.3
+++ getpathp.c	12 Dec 2004 08:35:30 -0000	1.3.10.1
@@ -132,7 +132,16 @@
 	return 0;
 }
 
-/* guarantees buffer will never overflow MAXPATHLEN+1 bytes */
+/* Add a path component, by appending stuff to buffer.
+ buffer must have at least MAXPATHLEN + 1 bytes allocated, and contain a
+ NUL-terminated string with no more than MAXPATHLEN characters (not counting
+ the trailing NUL). It's a fatal error if it contains a string longer than
+ that (callers must be careful!). If these requirements are met, it's
+ guaranteed that buffer will still be a NUL-terminated string with no more
+ than MAXPATHLEN characters at exit. If stuff is too long, only as much of
+ stuff as fits will be appended.
+*/
+
 static void
 join(char *buffer, char *stuff)
 {
@@ -144,6 +153,8 @@
 		if (n > 0 && !is_sep(buffer[n-1]) && n < MAXPATHLEN)
 			buffer[n++] = SEP;
 	}
+	if (n > MAXPATHLEN)
+		Py_FatalError("buffer overflow in getpathp.c's joinpath()");
 	k = strlen(stuff);
 	if (n + k > MAXPATHLEN)
 		k = MAXPATHLEN - n;


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /