diff options
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] == '#') |