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
This commit is contained in:
Johan Karlsson 2003-01-15 21:22:55 +00:00
parent 9bc01124e7
commit de216a83c2
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=109331
3 changed files with 10 additions and 10 deletions

View File

@ -46,7 +46,7 @@ static void usage(void) __dead2;
int
main(int argc, char *argv[])
{
char buf[MAXPATHLEN];
char buf[PATH_MAX];
char *p;
if (argc == 2) {

View File

@ -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

View File

@ -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 @@ realpath(path, resolved)
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 @@ realpath(path, resolved)
* the current directory.
*/
(void)strcpy(wbuf, p);
if (getcwd(resolved, MAXPATHLEN) == 0)
if (getcwd(resolved, PATH_MAX) == 0)
goto err1;
/*
@ -140,7 +140,7 @@ realpath(path, resolved)
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;
}