]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-windows-cifs-std-info-take-two-20060607
authorJeffrey Altman <jaltman@secure-endpoints.com>
Thu, 8 Jun 2006 00:30:18 +0000 (00:30 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Thu, 8 Jun 2006 00:30:18 +0000 (00:30 +0000)
The "is a directory" value was being set one field beyond the end of
the Standard Info reply structure.

(cherry picked from commit 2c20a3d603fcc654759b8c90924f36468f8aae81)

src/WINNT/afsd/smb3.c

index ef66ca5ccbc76c1b6490a5294a894d35af9ff403..42faf006cbed222bf37e9d89e6826e479e9fd40f 100644 (file)
@@ -2842,13 +2842,13 @@ long smb_ReceiveTran2QPathInfo(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t
     else if (infoLevel == SMB_QUERY_FILE_STANDARD_INFO) {
         *((LARGE_INTEGER *)op) = scp->length; op += 8; /* alloc size */
         *((LARGE_INTEGER *)op) = scp->length; op += 8; /* EOF */
-        *((u_long *)op) = scp->linkCount; op += 4;
-        *op++ = 0;
-        *op++ = 0;
+        *((u_long *)op) = scp->linkCount; op += 4;     /* Link count */
+        *op++ = 0;                                     /* Delete Pending */
         *op++ = ((scp->fileType == CM_SCACHETYPE_DIRECTORY || 
                  scp->fileType == CM_SCACHETYPE_MOUNTPOINT ||
                  scp->fileType == CM_SCACHETYPE_INVALID) ? 1 : 0);
         *op++ = 0;
+        *op++ = 0;
     }
     else if (infoLevel == SMB_QUERY_FILE_EA_INFO) {
         memset(op, 0, 4); op += 4;     /* EA size */
@@ -2967,8 +2967,8 @@ long smb_ReceiveTran2QFileInfo(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t
     else if (infoLevel == SMB_QUERY_FILE_STANDARD_INFO) {
         *((LARGE_INTEGER *)op) = scp->length; op += 8; /* alloc size */
         *((LARGE_INTEGER *)op) = scp->length; op += 8; /* EOF */
-        *((u_long *)op) = scp->linkCount; op += 4;
-        *op++ = (delonclose ? 1 : 0);
+        *((u_long *)op) = scp->linkCount; op += 4;     /* Link count */
+        *op++ = (delonclose ? 1 : 0);                  /* Delete Pending */
         *op++ = ((scp->fileType == CM_SCACHETYPE_DIRECTORY || 
                  scp->fileType == CM_SCACHETYPE_MOUNTPOINT ||
                  scp->fileType == CM_SCACHETYPE_INVALID)? 1 : 0);