summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortobias <tobias@openbsd.org>2008-02-24 20:04:05 +0000
committertobias <tobias@openbsd.org>2008-02-24 20:04:05 +0000
commitfa379eff4cff5f251b225c593eb429c78fff7c9b (patch)
tree38cc2614a37e4b1a238e05e5beddd5e4c5185b29
parentget REV, and make this more like other arch code (diff)
downloadwireguard-openbsd-fa379eff4cff5f251b225c593eb429c78fff7c9b.tar.xz
wireguard-openbsd-fa379eff4cff5f251b225c593eb429c78fff7c9b.zip
Properly handle return value of dirname().
OK joris@
-rw-r--r--usr.bin/cvs/checkout.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/usr.bin/cvs/checkout.c b/usr.bin/cvs/checkout.c
index 5f61c9e44c5..a8d4f0e1450 100644
--- a/usr.bin/cvs/checkout.c
+++ b/usr.bin/cvs/checkout.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: checkout.c,v 1.138 2008/02/10 14:08:52 xsa Exp $ */
+/* $OpenBSD: checkout.c,v 1.139 2008/02/24 20:04:05 tobias Exp $ */
/*
* Copyright (c) 2006 Joris Vink <joris@openbsd.org>
*
@@ -271,11 +271,13 @@ checkout_check_repository(int argc, char **argv)
cvs_file_ignore(fl->file_path, &checkout_ign_pats);
TAILQ_FOREACH(fl, &(mc->mc_modules), flist) {
+ module_repo_root = NULL;
+
(void)xsnprintf(repo, sizeof(repo), "%s/%s",
current_cvsroot->cr_dir, fl->file_path);
if (!(mc->mc_flags & MODULE_ALIAS) || dflag != NULL)
- module_repo_root = fl->file_path;
+ module_repo_root = xstrdup(fl->file_path);
if (mc->mc_flags & MODULE_NORECURSE)
flags &= ~CR_RECURSE_DIRS;
@@ -294,7 +296,7 @@ checkout_check_repository(int argc, char **argv)
if (!(mc->mc_flags & MODULE_ALIAS)) {
module_repo_root =
- dirname(fl->file_path);
+ xstrdup(dirname(fl->file_path));
d = wdir;
(void)xsnprintf(fpath, sizeof(fpath),
"%s/%s", d,
@@ -323,6 +325,9 @@ checkout_check_repository(int argc, char **argv)
if (nflag != 1 && mc->mc_prog != NULL &&
mc->mc_flags & MODULE_RUN_ON_CHECKOUT)
cvs_exec(mc->mc_prog);
+
+ if (module_repo_root != NULL)
+ xfree(module_repo_root);
}
if (mc->mc_canfree == 1) {