From 9d28d95151418189e8004734eca0edd498edd46b Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sun, 11 May 2008 14:15:51 +0000 Subject: [PATCH] windows-unicode-support-20080511 LICENSE MIT In NTCreateX a zero length name is permitted. This can occur when opening the root directory of a share. Change cm_NameEntries() to accept a size_t* instead of long* since that permits better type safety. --- src/WINNT/afsd/cm_dir.c | 2 +- src/WINNT/afsd/cm_dir.h | 2 +- src/WINNT/afsd/smb3.c | 3 --- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/WINNT/afsd/cm_dir.c b/src/WINNT/afsd/cm_dir.c index 463d2fbf4..d1fdfbd71 100644 --- a/src/WINNT/afsd/cm_dir.c +++ b/src/WINNT/afsd/cm_dir.c @@ -121,7 +121,7 @@ cm_DirFreeBlobs(cm_dirOp_t * op, int firstblob, int nblobs); * the specified name. */ long -cm_NameEntries(char *namep, long *lenp) +cm_NameEntries(char *namep, size_t *lenp) { long i; diff --git a/src/WINNT/afsd/cm_dir.h b/src/WINNT/afsd/cm_dir.h index febebb6f7..cc1b99824 100644 --- a/src/WINNT/afsd/cm_dir.h +++ b/src/WINNT/afsd/cm_dir.h @@ -139,7 +139,7 @@ extern long cm_EndDirOp(cm_dirOp_t * op); extern long -cm_NameEntries(char *namep, long *lenp); +cm_NameEntries(char *namep, size_t *lenp); extern long cm_DirCreateEntry(cm_dirOp_t * op, char *entry, cm_fid_t * cfid); diff --git a/src/WINNT/afsd/smb3.c b/src/WINNT/afsd/smb3.c index fa40caeb1..4da9f0281 100644 --- a/src/WINNT/afsd/smb3.c +++ b/src/WINNT/afsd/smb3.c @@ -6771,9 +6771,6 @@ long smb_ReceiveNTCreateX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp) if (extAttributes & SMB_ATTR_READONLY) initialModeBits &= ~0222; - if (nameLength == 0) - return CM_ERROR_INVAL; - pathp = smb_ParseStringCb(inp, smb_GetSMBData(inp, NULL), nameLength, NULL, SMB_STRF_ANSIPATH); -- 2.39.5