Module Name: src
Committed By: christos
Date: Thu Mar 8 20:33:02 UTC 2012
Modified Files:
src/external/gpl2/xcvs/dist/src: update.c
Log Message:
- acl support
- check chdir return
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/external/gpl2/xcvs/dist/src/update.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/gpl2/xcvs/dist/src/update.c
diff -u src/external/gpl2/xcvs/dist/src/update.c:1.3 src/external/gpl2/xcvs/dist/src/update.c:1.4
--- src/external/gpl2/xcvs/dist/src/update.c:1.3 Fri Apr 10 07:20:30 2009
+++ src/external/gpl2/xcvs/dist/src/update.c Thu Mar 8 15:33:02 2012
@@ -596,6 +596,25 @@ update_fileproc (void *callerdat, struct
status = Classify_File (finfo, tag, date, options, force_tag_match,
aflag, &vers, pipeout);
+/* cvsacl patch */
+#ifdef SERVER_SUPPORT
+ if (use_cvs_acl /* && server_active */)
+ {
+ if (!access_allowed (finfo->file, finfo->repository, vers->tag, 5,
+ NULL, NULL, 1))
+ {
+ if (stop_at_first_permission_denied)
+ error (1, 0, "permission denied for %s",
+ Short_Repository (finfo->repository));
+ else
+ error (0, 0, "permission denied for %s/%s",
+ Short_Repository (finfo->repository), finfo->file);
+
+ return (0);
+ }
+ }
+#endif
+
/* Keep track of whether TAG is a branch tag.
Note that if it is a branch tag in some files and a nonbranch tag
in others, treat it as a nonbranch tag. */
@@ -1039,7 +1058,8 @@ update_dirleave_proc (void *callerdat, c
{
/* FIXME: chdir ("..") loses with symlinks. */
/* Prune empty dirs on the way out - if necessary */
- (void) CVS_CHDIR ("..");
+ if (CVS_CHDIR ("..") == -1)
+ error (0, errno, "Cannot chdir to ..");
if (update_prune_dirs && isemptydir (dir, 0))
{
/* I'm not sure the existence_error is actually possible (except