summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdlib
diff options
context:
space:
mode:
authorjohan <johan@FreeBSD.org>2003-01-15 21:22:55 +0000
committerjohan <johan@FreeBSD.org>2003-01-15 21:22:55 +0000
commit989f4676c5d1a4dae0ed653db77f75e968fc68a2 (patch)
treed6bcf799cebe1ae46ef4875e0809bb5299e8bfd3 /lib/libc/stdlib
parent7b1874978c2d6c3244991e9fb0e20f06d67c48ca (diff)
downloadFreeBSD-src-989f4676c5d1a4dae0ed653db77f75e968fc68a2.zip
FreeBSD-src-989f4676c5d1a4dae0ed653db77f75e968fc68a2.tar.gz
realpath(3) should use PATH_MAX instead of MAXPATHLEN according to POSIX.
This also reverts the PATH_MAX -> MAXPATHLEN part of rev 1.3 of src/bin/realpath/realpath.c Requested by: imp Reviewed by: imp, bde
Diffstat (limited to 'lib/libc/stdlib')
-rw-r--r--lib/libc/stdlib/realpath.34
-rw-r--r--lib/libc/stdlib/realpath.c14
2 files changed, 9 insertions, 9 deletions
diff --git a/lib/libc/stdlib/realpath.3 b/lib/libc/stdlib/realpath.3
index 2351c8f..2f84d1d 100644
--- a/lib/libc/stdlib/realpath.3
+++ b/lib/libc/stdlib/realpath.3
@@ -47,7 +47,7 @@
.In sys/param.h
.In stdlib.h
.Ft "char *"
-.Fn realpath "const char *pathname" "char resolved_path[MAXPATHLEN]"
+.Fn realpath "const char *pathname" "char resolved_path[PATH_MAX]"
.Sh DESCRIPTION
The
.Fn realpath
@@ -67,7 +67,7 @@ The
argument
.Em must
refer to a buffer capable of storing at least
-.Dv MAXPATHLEN
+.Dv PATH_MAX
characters.
.Pp
The
diff --git a/lib/libc/stdlib/realpath.c b/lib/libc/stdlib/realpath.c
index da6f1e2..8429986 100644
--- a/lib/libc/stdlib/realpath.c
+++ b/lib/libc/stdlib/realpath.c
@@ -52,7 +52,7 @@ __FBSDID("$FreeBSD$");
#include "un-namespace.h"
/*
- * char *realpath(const char *path, char resolved_path[MAXPATHLEN]);
+ * char *realpath(const char *path, char resolved_path[PATH_MAX]);
*
* Find the real name of path, by removing all ".", ".." and symlink
* components. Returns (resolved) on success, or (NULL) on failure,
@@ -65,7 +65,7 @@ realpath(path, resolved)
{
struct stat sb;
int fd, n, rootd, serrno;
- char *p, *q, wbuf[MAXPATHLEN];
+ char *p, *q, wbuf[PATH_MAX];
int symlinks = 0;
/* Save the starting point. */
@@ -82,8 +82,8 @@ realpath(path, resolved)
* if it is a directory, then change to that directory.
* get the current directory name and append the basename.
*/
- (void)strncpy(resolved, path, MAXPATHLEN - 1);
- resolved[MAXPATHLEN - 1] = '\0';
+ (void)strncpy(resolved, path, PATH_MAX - 1);
+ resolved[PATH_MAX - 1] = '\0';
loop:
q = strrchr(resolved, '/');
if (q != NULL) {
@@ -109,7 +109,7 @@ loop:
errno = ELOOP;
goto err1;
}
- n = readlink(p, resolved, MAXPATHLEN - 1);
+ n = readlink(p, resolved, PATH_MAX - 1);
if (n < 0)
goto err1;
resolved[n] = '\0';
@@ -127,7 +127,7 @@ loop:
* the current directory.
*/
(void)strcpy(wbuf, p);
- if (getcwd(resolved, MAXPATHLEN) == 0)
+ if (getcwd(resolved, PATH_MAX) == 0)
goto err1;
/*
@@ -140,7 +140,7 @@ loop:
rootd = 0;
if (*wbuf) {
- if (strlen(resolved) + strlen(wbuf) + rootd + 1 > MAXPATHLEN) {
+ if (strlen(resolved) + strlen(wbuf) + rootd + 1 > PATH_MAX) {
errno = ENAMETOOLONG;
goto err1;
}
OpenPOWER on IntegriCloud