windows-smb-parse-string-20080513
authorJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 14 May 2008 05:14:57 +0000 (05:14 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 14 May 2008 05:14:57 +0000 (05:14 +0000)
LICENSE MIT

if the input length is 0, smb_ParseString should return the NUL string
not NULL.

Do not permit unprotected DebugBreak() calls.

src/WINNT/afsd/smb.c
src/WINNT/afsd/smb3.c

index 5b13317..76cf54a 100644 (file)
@@ -2483,7 +2483,7 @@ unsigned char *smb_ParseStringBuf(const unsigned char * bufbase,
                 null_terms = 1;
             }
         } else {
-            return NULL;
+            cch_src = 0;
         }
 
         spacep = cm_GetSpace();
index 4da9f02..3c588a1 100644 (file)
@@ -1256,7 +1256,9 @@ unsigned char *smb_ParseStringT2Parm(smb_tran2Packet_t * p, unsigned char * inp,
     cb = p->totalParms - (inp - (unsigned char *)p->parmsp);
     if (inp < (unsigned char *) p->parmsp ||
         inp > ((unsigned char *) p->parmsp) + p->totalParms) {
+#ifdef DEBUG_UNICODE
         DebugBreak();
+#endif
         cb = p->totalParms;
     }
 
@@ -2781,7 +2783,9 @@ long cm_GetShortName(char *pathp, cm_user_t *userp, cm_req_t *reqp,
     if (dscp->fileType == CM_SCACHETYPE_DFSLINK) {
         cm_ReleaseSCache(dscp);
         cm_ReleaseUser(userp);
+#ifdef DEBUG
         DebugBreak();
+#endif
         return CM_ERROR_PATH_NOT_COVERED;
     }
 #endif /* DFS_SUPPORT */