From: Jeffrey Altman Date: Thu, 8 Jun 2006 00:31:55 +0000 (+0000) Subject: DEVEL15-windows-cifs-std-info-take-two-20060607 X-Git-Tag: openafs-devel-1_5_2~1 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=43cb64929c071cc0ba0628d28b4bda48babf5276;p=packages%2Fo%2Fopenafs.git DEVEL15-windows-cifs-std-info-take-two-20060607 The "is a directory" value was being set one field beyond the end of the Standard Info reply structure. (cherry picked from commit 2c20a3d603fcc654759b8c90924f36468f8aae81) --- diff --git a/src/WINNT/afsd/smb3.c b/src/WINNT/afsd/smb3.c index 9f046c6d7..618cf729e 100644 --- a/src/WINNT/afsd/smb3.c +++ b/src/WINNT/afsd/smb3.c @@ -2825,13 +2825,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 */ @@ -2950,8 +2950,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);