diff options
author | 1996-05-23 23:00:29 +0000 | |
---|---|---|
committer | 1996-05-23 23:00:29 +0000 | |
commit | f6aacbe173f6154f2473ba335ebbc99b640367f7 (patch) | |
tree | 12f55a254b0fed0b1884440cce217dd31511eb52 /gnu/usr.bin/cvs/src | |
parent | execve changes (diff) | |
download | wireguard-openbsd-f6aacbe173f6154f2473ba335ebbc99b640367f7.tar.xz wireguard-openbsd-f6aacbe173f6154f2473ba335ebbc99b640367f7.zip |
parseopts() may be called with CVSROOT still in client form
Diffstat (limited to 'gnu/usr.bin/cvs/src')
-rw-r--r-- | gnu/usr.bin/cvs/src/main.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gnu/usr.bin/cvs/src/main.c b/gnu/usr.bin/cvs/src/main.c index cac95441644..5808ca375cc 100644 --- a/gnu/usr.bin/cvs/src/main.c +++ b/gnu/usr.bin/cvs/src/main.c @@ -847,7 +847,20 @@ parseopts() char *p; FILE *fp; - (void) sprintf (path, "%s/%s/%s", CVSroot, CVSROOTADM, CVSROOTADM_OPTIONS); + if (CVSroot == NULL) { + printf("no CVSROOT in parseopts\n"); + return; + } + p = strchr (CVSroot, ':'); + if (p) + p++; + else + p = CVSroot; + if (p == NULL) { + printf("mangled CVSROOT in parseopts\n"); + return; + } + (void) sprintf (path, "%s/%s/%s", p, CVSROOTADM, CVSROOTADM_OPTIONS); if ((fp = fopen(path, "r")) != NULL) { while (fgets(buf, sizeof buf, fp) != NULL) { if (buf[0] == '#') |