diff options
| author | 2008-02-03 22:53:04 +0000 | |
|---|---|---|
| committer | 2008-02-03 22:53:04 +0000 | |
| commit | cc6e7cce94f60445f064b4cb1788c223bbadf668 (patch) | |
| tree | 2a2036eac722acc9aba19bdd96161db62c2406d4 /usr.bin/cvs/modules.c | |
| parent | more CVSROOT/module stuff: (diff) | |
| download | wireguard-openbsd-cc6e7cce94f60445f064b4cb1788c223bbadf668.tar.xz wireguard-openbsd-cc6e7cce94f60445f064b4cb1788c223bbadf668.zip | |
be more strict when checking ignore patterns;
kill unused var;
Diffstat (limited to 'usr.bin/cvs/modules.c')
| -rw-r--r-- | usr.bin/cvs/modules.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/usr.bin/cvs/modules.c b/usr.bin/cvs/modules.c index f966664aa38..9bc2adf47f6 100644 --- a/usr.bin/cvs/modules.c +++ b/usr.bin/cvs/modules.c @@ -1,4 +1,4 @@ -/* $OpenBSD: modules.c,v 1.4 2008/02/03 22:50:28 joris Exp $ */ +/* $OpenBSD: modules.c,v 1.5 2008/02/03 22:53:04 joris Exp $ */ /* * Copyright (c) 2008 Joris Vink <joris@openbsd.org> * @@ -43,7 +43,7 @@ void modules_parse_line(char *line) { int flags; - struct cvs_filelist *fl, *nxt; + struct cvs_filelist *fl; char *val, *p, *module, *sp, *dp; struct module_info *mi; char *dirname, fpath[MAXPATHLEN]; @@ -134,14 +134,20 @@ modules_parse_line(char *line) *(dp++) = '\0'; if (mi->mi_flags & MODULE_ALIAS) { - if (sp[0] == '!') + if (sp[0] == '!') { + if (strlen(sp) < 2) + fatal("invalid ! pattern"); cvs_file_get((sp + 1), 0, &(mi->mi_ignores)); - else + } else { cvs_file_get(sp, 0, &(mi->mi_modules)); + } } else if (sp == val) { dirname = sp; } else { if (sp[0] == '!') { + if (strlen(sp) < 2) + fatal("invalid ! pattern"); + sp++; (void)xsnprintf(fpath, sizeof(fpath), "%s/%s", dirname, sp); |
