From efdf78ae086ba02cc3f6ffbd7b0a2ca31743ced7 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Tue, 30 Jun 2009 19:11:28 +0000 Subject: [PATCH] windows-dfs-file-set-warning-20090630 LICENSE MIT Add a debug log warning if the target volume is a DFS File Set. If so, the client will not properly protect against information leakage or properly deal with directory name caching, symlinks, and other behavioral differences between AFS and DFS. --- src/WINNT/afsd/cm_volume.c | 6 ++++++ src/WINNT/afsd/cm_volume.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/WINNT/afsd/cm_volume.c b/src/WINNT/afsd/cm_volume.c index 17b6cd12e..fbc731889 100644 --- a/src/WINNT/afsd/cm_volume.c +++ b/src/WINNT/afsd/cm_volume.c @@ -452,6 +452,12 @@ long cm_UpdateVolumeLocation(struct cm_cell *cellp, cm_user_t *userp, cm_req_t * cm_AddVolumeToNameHashTable(volp); } + if (flags & VLF_DFSFILESET) { + volp->flags |= CM_VOLUMEFLAG_DFS_VOLUME; + osi_Log1(afsd_logp, "cm_UpdateVolume Volume Group '%s' is a DFS File Set. Correct behavior is not implemented.", + osi_LogSaveString(afsd_logp, volp->namep)); + } + if (flags & VLF_RWEXISTS) { if (volp->vol[RWVOL].ID != rwID) { if (volp->vol[RWVOL].flags & CM_VOLUMEFLAG_IN_HASH) diff --git a/src/WINNT/afsd/cm_volume.h b/src/WINNT/afsd/cm_volume.h index 704d21636..3cef972be 100644 --- a/src/WINNT/afsd/cm_volume.h +++ b/src/WINNT/afsd/cm_volume.h @@ -50,7 +50,7 @@ typedef struct cm_volume { #define CM_VOLUMEFLAG_IN_HASH 2 #define CM_VOLUMEFLAG_IN_LRU_QUEUE 4 #define CM_VOLUMEFLAG_UPDATING_VL 8 - +#define CM_VOLUMEFLAG_DFS_VOLUME 16 typedef struct cm_volumeRef { struct cm_volumeRef * next; -- 2.39.5