Use sysconf(_SC_SYMLOOP_MAX) instead of MAXSYMLINKS. If sysconf
returns an error, fall back to MAXSYMLINKS on platforms that define it. Fixes build on Hurd. Patch from Justus Winter and Debian.
This commit is contained in:
parent
c26aaa4410
commit
834bcebcaf
@ -67,6 +67,10 @@ sysvinit (2.89dsf) UNRELEASED; urgency=low
|
||||
* Define _XOPEN_SOURCE when building to get crypt() from <unistd.h>
|
||||
instead of using <crypt.h> in sulogin.c, to get the source building
|
||||
with the musl C library.
|
||||
* Use sysconf(_SC_SYMLOOP_MAX) instead of MAXSYMLINKS. If sysconf
|
||||
returns an error, fall back to MAXSYMLINKS on platforms that
|
||||
define it. Fixes build on Hurd. Patch from Justus Winter and
|
||||
Debian.
|
||||
|
||||
-- Petter Reinholdtsen <pere@hungry.com> Sun Apr 11 11:28:55 CEST 2010
|
||||
|
||||
|
@ -376,6 +376,19 @@ out:
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the maximal number of symlinks to follow.
|
||||
*/
|
||||
static int maxsymlinks(void)
|
||||
{
|
||||
int v = sysconf(_SC_SYMLOOP_MAX);
|
||||
#ifdef MAXSYMLINKS
|
||||
if (v == -1)
|
||||
return MAXSYMLINKS;
|
||||
#endif
|
||||
return v;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check path is located on a network based partition.
|
||||
*/
|
||||
@ -383,7 +396,7 @@ int check4nfs(const char * path, char * real)
|
||||
{
|
||||
char buf[PATH_MAX+1];
|
||||
const char *curr;
|
||||
int deep = MAXSYMLINKS;
|
||||
int deep = maxsymlinks();
|
||||
|
||||
if (!nlist) return 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user