if (dscp->fileType == CM_SCACHETYPE_MOUNTPOINT && !dscp->mountRootFid.volume)
code = CM_ERROR_NOSUCHFILE;
else if (dscp->fileType == CM_SCACHETYPE_DIRECTORY) {
- cm_buf_t *bp = buf_Find(dscp, &hzero);
+ cm_buf_t *bp = buf_Find(&dscp->fid, &hzero);
if (bp) {
buf_Release(bp);
bp = NULL;
if (dscp->fileType == CM_SCACHETYPE_MOUNTPOINT && !dscp->mountRootFid.volume)
code = CM_ERROR_NOSUCHFILE;
else if (dscp->fileType == CM_SCACHETYPE_DIRECTORY) {
- cm_buf_t *bp = buf_Find(dscp, &hzero);
+ cm_buf_t *bp = buf_Find(&dscp->fid, &hzero);
if (bp) {
buf_Release(bp);
bp = NULL;
createDisp == FILE_OVERWRITE_IF))
{
osi_Log0(smb_logp, "NTTranCreate rejecting invalid readDirFlag and createDisp combination");
+ cm_FreeSpace(spacep);
free(realPathp);
return CM_ERROR_INVAL;
}
#else
osi_Log0(smb_logp, "NTTranCreate rejecting invalid name.");
#endif
+ cm_FreeSpace(spacep);
free(realPathp);
return CM_ERROR_BADNTFILENAME;
}
userp = smb_GetUserFromVCP(vcp, inp);
if (!userp) {
osi_Log1(smb_logp, "NTTranCreate invalid user [%d]", ((smb_t *) inp)->uid);
+ cm_FreeSpace(spacep);
free(realPathp);
return CM_ERROR_INVAL;
}
*/
osi_Log0(smb_logp, "NTTranCreate received IPC TID");
#ifndef DFS_SUPPORT
+ cm_FreeSpace(spacep);
free(realPathp);
cm_ReleaseUser(userp);
return CM_ERROR_NOSUCHPATH;
if (!baseFidp) {
osi_Log2(smb_logp, "NTTranCreate Unknown SMB Fid vcp 0x%p fid %d",
vcp, baseFid);
+ cm_FreeSpace(spacep);
free(realPathp);
cm_ReleaseUser(userp);
return CM_ERROR_BADFD;
}
if (baseFidp->scp && (baseFidp->scp->flags & CM_SCACHEFLAG_DELETED)) {
+ cm_FreeSpace(spacep);
free(realPathp);
cm_ReleaseUser(userp);
smb_CloseFID(vcp, baseFidp, NULL, 0);
int pnc = cm_VolStatus_Notify_DFS_Mapping(dscp, tidPathp, spacep->wdata);
cm_ReleaseSCache(dscp);
cm_ReleaseUser(userp);
+ cm_FreeSpace(spacep);
free(realPathp);
if (baseFidp)
smb_ReleaseFID(baseFidp);
cm_ReleaseSCache(scp);
cm_ReleaseSCache(dscp);
cm_ReleaseUser(userp);
+ cm_FreeSpace(spacep);
free(realPathp);
if (baseFidp)
smb_ReleaseFID(baseFidp);
return CM_ERROR_EXISTS;
}
}
+ } else {
+ cm_ReleaseUser(userp);
+ if (baseFidp)
+ smb_ReleaseFID(baseFidp);
+ cm_FreeSpace(spacep);
+ free(realPathp);
+ return CM_ERROR_NOSUCHPATH;
}
if (code == 0)