37 lines
851 B
Diff
37 lines
851 B
Diff
|
--- export/src/el.c 2007-08-31 00:02:46.000000000 +0200
|
||
|
+++ ../src/el.c 2007-08-31 00:03:08.000000000 +0200
|
||
|
@@ -473,12 +473,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))
|
||
|
@@ -486,14 +491,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");
|