DEVEL15-windows-dfs-file-set-warning-20090630
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 30 Jun 2009 19:11:40 +0000 (19:11 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 30 Jun 2009 19:11:40 +0000 (19:11 +0000)
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.

(cherry picked from commit efdf78ae086ba02cc3f6ffbd7b0a2ca31743ced7)

src/WINNT/afsd/cm_volume.c
src/WINNT/afsd/cm_volume.h

index 17b6cd1..fbc7318 100644 (file)
@@ -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)
index 704d216..3cef972 100644 (file)
@@ -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;