diff options
author | jdp <jdp@FreeBSD.org> | 2000-08-07 19:12:04 +0000 |
---|---|---|
committer | jdp <jdp@FreeBSD.org> | 2000-08-07 19:12:04 +0000 |
commit | daf512cf554964046743c93a27d735a1807cabf3 (patch) | |
tree | f2b8a8eac5f24101b2eed0ae33869b3532cf8114 /sbin/ldconfig/ldconfig.c | |
parent | 69f47a0a2a9ec3b664f30e4afa0fa1bdebaa4773 (diff) | |
download | FreeBSD-src-daf512cf554964046743c93a27d735a1807cabf3.zip FreeBSD-src-daf512cf554964046743c93a27d735a1807cabf3.tar.gz |
Add a "-i" option ("insecure") which disables the checks for
root ownership, etc. I will soon commit a companion knob for
"/etc/rc.conf".
Submitted by: Maxime Henrion <mhenrion@cybercable.fr>
Diffstat (limited to 'sbin/ldconfig/ldconfig.c')
-rw-r--r-- | sbin/ldconfig/ldconfig.c | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/sbin/ldconfig/ldconfig.c b/sbin/ldconfig/ldconfig.c index cde4f9a..5c655b4 100644 --- a/sbin/ldconfig/ldconfig.c +++ b/sbin/ldconfig/ldconfig.c @@ -117,7 +117,7 @@ char *argv[]; hints_file = is_aout ? _PATH_LD_HINTS : _PATH_ELF_HINTS; if (argc == 1) rescan = 1; - else while((c = getopt(argc, argv, "Rf:mrsv")) != -1) { + else while((c = getopt(argc, argv, "Rf:imrsv")) != -1) { switch (c) { case 'R': rescan = 1; @@ -125,6 +125,9 @@ char *argv[]; case 'f': hints_file = optarg; break; + case 'i': + insecure = 1; + break; case 'm': merge = 1; break; @@ -152,6 +155,7 @@ char *argv[]; return 0; } + /* Here begins the aout libs processing */ dir_list = strdup(""); if (justread || merge || rescan) { @@ -209,7 +213,7 @@ static void usage() { fprintf(stderr, - "usage: ldconfig [-aout | -elf] [-Rmrsv] [-f hints_file] [dir | file ...]\n"); + "usage: ldconfig [-aout | -elf] [-Rimrsv] [-f hints_file] [dir | file ...]\n"); exit(1); } @@ -259,7 +263,6 @@ int silent; { DIR *dd; struct dirent *dp; - struct stat stbuf; char name[MAXPATHLEN]; int dewey[MAXDEWEY], ndewey; @@ -270,20 +273,6 @@ int silent; return -1; } - /* Do some security checks */ - if (fstat(dirfd(dd), &stbuf) == -1) { - warn("%s", dir); - return -1; - } - if (stbuf.st_uid != 0) { - warnx("%s: not owned by root", dir); - return -1; - } - if ((stbuf.st_mode & S_IWOTH) != 0) { - warnx("%s: ignoring world-writable directory", dir); - return -1; - } - while ((dp = readdir(dd)) != NULL) { register int n; register char *cp; |