diff options
author | joe <joe@FreeBSD.org> | 2001-11-16 07:36:02 +0800 |
---|---|---|
committer | joe <joe@FreeBSD.org> | 2001-11-16 07:36:02 +0800 |
commit | c41cd92a7a67494e73e8e48da3e7b3e35fb00f58 (patch) | |
tree | 9e67c721902d3850d4753396968aa63d69c199f7 /CVSROOT | |
parent | 2967a062cd1073228d37f4c6312bef4023fd5f14 (diff) | |
download | freebsd-ports-gnome-c41cd92a7a67494e73e8e48da3e7b3e35fb00f58.tar.gz freebsd-ports-gnome-c41cd92a7a67494e73e8e48da3e7b3e35fb00f58.tar.zst freebsd-ports-gnome-c41cd92a7a67494e73e8e48da3e7b3e35fb00f58.zip |
Migrate the cvswrap.c source from CVSROOT/ to CVSROOT/freebsd via
a repocopy and a forced commit to enter the log message there.
Diffstat (limited to 'CVSROOT')
-rw-r--r-- | CVSROOT/cvswrap.c | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/CVSROOT/cvswrap.c b/CVSROOT/cvswrap.c deleted file mode 100644 index 45e0d2005f69..000000000000 --- a/CVSROOT/cvswrap.c +++ /dev/null @@ -1,101 +0,0 @@ -/*- - * Copyright (c) 1999, Peter Wemm <peter@netplex.com.au> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -/* - * A cheap hack to put a paper thick fence in front of /home/ncvs - * and a replacement of the ncvs priviliged group. - */ - -#include <sys/types.h> -#include <stdio.h> -#include <string.h> -#include <unistd.h> -#include <stdlib.h> -#include <pwd.h> -#include <err.h> - -#define ACCESS "/home/ncvs/CVSROOT/access" -#define REALCVS "/usr/bin/ncvs" - -char linebuf[1024]; - -int -main(int ac, char **av) -{ - FILE *fp; - uid_t uid; - struct passwd *pw; - char *p, *s; - int karma; - - karma = 0; - -#if 0 - /* not such a good idea if cvs is called from the commitlog scripts */ - if (getgid() == getegid()) - errx(1, "fatal: not installed setgid correctly!"); -#endif - umask(002); - - fp = fopen(ACCESS, "r"); - if (fp == NULL) - err(1, "cannot open %s", ACCESS); - - uid = getuid(); - pw = getpwuid(uid); - if (pw == NULL) - err(1, "you don't exist! (getpwuid(3) failed)"); - - while ((p = fgets(linebuf, sizeof(linebuf) - 1, fp)) != NULL) { - while ((s = strsep(&p, " \t\n")) != NULL) { - if (*s == '\0') - continue; /* whitespace */ - if (*s == '#' || *s == '/' || *s == ';') - break; /* comment */ - if (strcmp(s, pw->pw_name) == 0) { - karma++; - break; - } - break; /* ignore further tokens on line for now */ - } - } - fclose(fp); - - if (karma > 0) { - if (setgid(getegid()) < 0) - err(1, "setgid(getegid()) failed!"); - } else { - if (setgid(getgid()) < 0) - err(1, "setgid(getgid()) failed!"); - /* tell cvs to not bother trying to create locks */ - putenv("CVSREADONLYFS=true"); - } - - execv(REALCVS, av); - err(1, "cannot execv(%s)", REALCVS); -} |