From: Jeffrey Altman Date: Wed, 18 Mar 2009 03:56:12 +0000 (+0000) Subject: windows-afsd-badsharename-20090317 X-Git-Tag: openafs-devel-1_5_61~442 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=09b23c27a7b59a32b8e39bbc0410ddda373da5d4 windows-afsd-badsharename-20090317 LICENSE MIT When Dfs support is enabled in the smb server do not return CM_ERROR_BADSHARENAME unless the component that is not found is in fact a share name. Return CM_ERROR_NOSUCHPATH instead. --- diff --git a/src/WINNT/afsd/smb.c b/src/WINNT/afsd/smb.c index f4563dd..92cb709 100644 --- a/src/WINNT/afsd/smb.c +++ b/src/WINNT/afsd/smb.c @@ -4778,7 +4778,7 @@ long smb_ReceiveCoreSearchDir(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *ou if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -5213,7 +5213,7 @@ long smb_ReceiveCoreCheckPath(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *ou if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -5301,7 +5301,7 @@ long smb_ReceiveCoreSetFileAttributes(smb_vc_t *vcp, smb_packet_t *inp, smb_pack if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -5434,7 +5434,7 @@ long smb_ReceiveCoreGetFileAttributes(smb_vc_t *vcp, smb_packet_t *inp, smb_pack if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } else #endif /* DFS_SUPPORT */ if (dscp->fileType == CM_SCACHETYPE_MOUNTPOINT && !dscp->mountRootFid.volume) @@ -5471,7 +5471,7 @@ long smb_ReceiveCoreGetFileAttributes(smb_vc_t *vcp, smb_packet_t *inp, smb_pack if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -5631,7 +5631,7 @@ long smb_ReceiveCoreOpen(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp) if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -5812,7 +5812,7 @@ long smb_ReceiveCoreUnlink(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp) if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -6004,7 +6004,7 @@ smb_Rename(smb_vc_t *vcp, smb_packet_t *inp, clientchar_t * oldPathp, clientchar if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -6027,7 +6027,7 @@ smb_Rename(smb_vc_t *vcp, smb_packet_t *inp, clientchar_t * oldPathp, clientchar if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -6214,7 +6214,7 @@ smb_Link(smb_vc_t *vcp, smb_packet_t *inp, clientchar_t * oldPathp, clientchar_t if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -6236,7 +6236,7 @@ smb_Link(smb_vc_t *vcp, smb_packet_t *inp, clientchar_t * oldPathp, clientchar_t if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -6462,7 +6462,7 @@ long smb_ReceiveCoreRemoveDir(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *ou if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -7911,7 +7911,7 @@ long smb_ReceiveCoreMakeDir(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -8052,7 +8052,7 @@ long smb_ReceiveCoreCreate(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp) if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ diff --git a/src/WINNT/afsd/smb3.c b/src/WINNT/afsd/smb3.c index 17645ea..b5e6267 100644 --- a/src/WINNT/afsd/smb3.c +++ b/src/WINNT/afsd/smb3.c @@ -2471,7 +2471,7 @@ long smb_ReceiveTran2Open(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *op) if ( WANTS_DFS_PATHNAMES(p) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -2501,7 +2501,7 @@ long smb_ReceiveTran2Open(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *op) if ( WANTS_DFS_PATHNAMES(p) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -3043,7 +3043,7 @@ long smb_ReceiveTran2QPathInfo(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t if ( WANTS_DFS_PATHNAMES(p) || pnc ) code = CM_ERROR_PATH_NOT_COVERED; else - code = CM_ERROR_BADSHARENAME; + code = CM_ERROR_NOSUCHPATH; } else #endif /* DFS_SUPPORT */ if (dscp->fileType == CM_SCACHETYPE_MOUNTPOINT && !dscp->mountRootFid.volume) @@ -3092,7 +3092,7 @@ long smb_ReceiveTran2QPathInfo(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t if ( WANTS_DFS_PATHNAMES(p) || pnc ) code = CM_ERROR_PATH_NOT_COVERED; else - code = CM_ERROR_BADSHARENAME; + code = CM_ERROR_NOSUCHPATH; smb_SendTran2Error(vcp, p, opx, code); smb_FreeTran2Packet(outp); return 0; @@ -3330,7 +3330,7 @@ long smb_ReceiveTran2SetPathInfo(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet if ( WANTS_DFS_PATHNAMES(p) || pnc ) code = CM_ERROR_PATH_NOT_COVERED; else - code = CM_ERROR_BADSHARENAME; + code = CM_ERROR_NOSUCHPATH; } else #endif /* DFS_SUPPORT */ if (dscp->fileType == CM_SCACHETYPE_MOUNTPOINT && !dscp->mountRootFid.volume) @@ -4568,7 +4568,7 @@ long smb_T2SearchDirSingle(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *op if ( WANTS_DFS_PATHNAMES(p) || pnc ) code = CM_ERROR_PATH_NOT_COVERED; else - code = CM_ERROR_BADSHARENAME; + code = CM_ERROR_NOSUCHPATH; smb_SendTran2Error(vcp, p, opx, code); smb_FreeTran2Packet(outp); return 0; @@ -5088,7 +5088,7 @@ long smb_ReceiveTran2SearchDir(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t if ( WANTS_DFS_PATHNAMES(p) || pnc ) code = CM_ERROR_PATH_NOT_COVERED; else - code = CM_ERROR_BADSHARENAME; + code = CM_ERROR_NOSUCHPATH; smb_SendTran2Error(vcp, p, opx, code); smb_FreeTran2Packet(outp); lock_ReleaseMutex(&dsp->mx); @@ -5779,7 +5779,7 @@ long smb_ReceiveV3OpenX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp) if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -5801,7 +5801,7 @@ long smb_ReceiveV3OpenX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp) if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ /* otherwise, scp points to the parent directory. Do a lookup, @@ -7043,7 +7043,7 @@ long smb_ReceiveNTCreateX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp) if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ code = cm_Lookup(dscp, (lastNamep)?(lastNamep+1):realPathp, CM_FLAG_FOLLOW, @@ -7077,7 +7077,7 @@ long smb_ReceiveNTCreateX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp) if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ /* we might have scp but not dscp */ @@ -7117,7 +7117,7 @@ long smb_ReceiveNTCreateX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp) if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ @@ -7865,7 +7865,7 @@ long smb_ReceiveNTTranCreate(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *out if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ code = cm_Lookup(dscp, (lastNamep)?(lastNamep+1):realPathp, CM_FLAG_FOLLOW, @@ -7899,7 +7899,7 @@ long smb_ReceiveNTTranCreate(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *out if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ } @@ -7924,7 +7924,7 @@ long smb_ReceiveNTTranCreate(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *out if ( WANTS_DFS_PATHNAMES(inp) || pnc ) return CM_ERROR_PATH_NOT_COVERED; else - return CM_ERROR_BADSHARENAME; + return CM_ERROR_NOSUCHPATH; } #endif /* DFS_SUPPORT */ } else