08-el.c.patch   [plain text]


--- export/src/el.c	2006-08-29 21:11:07.000000000 +0200
+++ ../src/el.c	2006-08-29 21:18:07.000000000 +0200
@@ -435,12 +435,17 @@
 
 	fp = NULL;
 	if (fname == NULL) {
-#ifdef HAVE_ISSETUGID
 		static const char elpath[] = "/.editrc";
+#ifdef MAXPATHLEN
 		char path[MAXPATHLEN];
+#else
+		char path[4096];
+#endif
 
+#ifdef HAVE_ISSETUGID
 		if (issetugid())
 			return (-1);
+#endif
 		if ((ptr = getenv("HOME")) == NULL)
 			return (-1);
 		if (strlcpy(path, ptr, sizeof(path)) >= sizeof(path))
@@ -448,14 +453,6 @@
 		if (strlcat(path, elpath, sizeof(path)) >= sizeof(path))
 			return (-1);
 		fname = path;
-#else
-		/*
-		 * If issetugid() is missing, always return an error, in order
-		 * to keep from inadvertently opening up the user to a security
-		 * hole.
-		 */
-		return (-1);
-#endif
 	}
 	if (fp == NULL)
 		fp = fopen(fname, "r");