summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjfb <jfb@openbsd.org>2005-03-05 03:00:27 +0000
committerjfb <jfb@openbsd.org>2005-03-05 03:00:27 +0000
commit05610978d76d85552d387f576f9931b82b7275dc (patch)
tree0f8f5a1aa01b9f226c05b8c4c7f064e6f4322563
parentSync (diff)
downloadwireguard-openbsd-05610978d76d85552d387f576f9931b82b7275dc.tar.xz
wireguard-openbsd-05610978d76d85552d387f576f9931b82b7275dc.zip
make sure that errors from cvs_file_lget() cascade down instead of
ignoring them ok joris@
-rw-r--r--usr.bin/cvs/file.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/usr.bin/cvs/file.c b/usr.bin/cvs/file.c
index d7a04eec8e3..ad0bbd30858 100644
--- a/usr.bin/cvs/file.c
+++ b/usr.bin/cvs/file.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: file.c,v 1.54 2005/03/02 16:56:58 joris Exp $ */
+/* $OpenBSD: file.c,v 1.55 2005/03/05 03:00:27 jfb Exp $ */
/*
* Copyright (c) 2004 Jean-Francois Brousseau <jfb@openbsd.org>
* All rights reserved.
@@ -631,15 +631,18 @@ cvs_file_getdir(CVSFILE *cf, int flags)
snprintf(pbuf, sizeof(pbuf), "%s/%s", fpath,
ent->d_name);
cfp = cvs_file_lget(pbuf, flags, cf);
- if (cfp != NULL) {
- if (cfp->cf_type == DT_DIR) {
- TAILQ_INSERT_TAIL(&dirs, cfp, cf_list);
- ndirs++;
- } else {
- TAILQ_INSERT_TAIL(&(cdp->cd_files), cfp,
- cf_list);
- cdp->cd_nfiles++;
- }
+ if (cfp == NULL) {
+ (void)close(fd);
+ return (-1);
+ }
+
+ if (cfp->cf_type == DT_DIR) {
+ TAILQ_INSERT_TAIL(&dirs, cfp, cf_list);
+ ndirs++;
+ } else {
+ TAILQ_INSERT_TAIL(&(cdp->cd_files), cfp,
+ cf_list);
+ cdp->cd_nfiles++;
}
}
} while (ret > 0);