From 090b2eebfa9fb48deea94bf7b511e693a251e041 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 14 May 2008 05:14:57 +0000 Subject: [PATCH] windows-smb-parse-string-20080513 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 | 2 +- src/WINNT/afsd/smb3.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/WINNT/afsd/smb.c b/src/WINNT/afsd/smb.c index 5b13317..76cf54a 100644 --- a/src/WINNT/afsd/smb.c +++ b/src/WINNT/afsd/smb.c @@ -2483,7 +2483,7 @@ unsigned char *smb_ParseStringBuf(const unsigned char * bufbase, null_terms = 1; } } else { - return NULL; + cch_src = 0; } spacep = cm_GetSpace(); diff --git a/src/WINNT/afsd/smb3.c b/src/WINNT/afsd/smb3.c index 4da9f02..3c588a1 100644 --- a/src/WINNT/afsd/smb3.c +++ b/src/WINNT/afsd/smb3.c @@ -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 */ -- 1.9.4