diff options
author | 2005-03-05 03:00:27 +0000 | |
---|---|---|
committer | 2005-03-05 03:00:27 +0000 | |
commit | 05610978d76d85552d387f576f9931b82b7275dc (patch) | |
tree | 0f8f5a1aa01b9f226c05b8c4c7f064e6f4322563 | |
parent | Sync (diff) | |
download | wireguard-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.c | 23 |
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); |