Name resolution, wildcarded FSEntry_File 5 & 9, and buffer overrun fixes
Make SMB_RxWords a bit bigger per static anaylsis https://www.riscosopen.org/forum/forums/4/topics/9503 when LONGNAMES is undefined, since NT LM 0.12 dialect is allowed at the same time as short names. A change to name translation in LanManFS-2_60 broke all forms of nested contentious name resolution, ie. where a leafname containing a contentious character was itself in a directory containing one. The cited problem names ('1 2/3' and '1 /s') can both be resolved at one level only, no 2nd pass is required. The resolution function walks along the elements of the path one at a time to reach the leaf (ie. no element is processed twice). A test case has been created to allow some regression testing when making future changes in this area. When building tboxlibint Copy h.* <Lib$Dir>.tboxlibint.h.* when the directory is empty FileSwitch checks the destination ending in ...\h\* which the short names translation would error with ENOWILDCARD, but the long names translation attempts to resolve it by finding the trailing '\' and appending a '*' (ie. not doing anything), this returns no results and is passed back unfaulted. The special check in fsentry_file() for ENOWILDCARD for the two ReadCatalogueInformation thus doesn't trigger, and an attempt to FileGetAttribs() is made on the still wildcarded path. This is rejected by the server when in SMB_GetAttribsX2() does a TRANSACT2_QUERYPATHINFORMATION, which expects a non wildcarded object (on Windows servers at least), propagating an error back up to the user. This stopped a ROM build from completing the exports phase via LanManFS on a Windows share. Const-ify a few things. Changed files Xlate.c: Revert change from revision 1.21, return ENOWILDCARD when appropriate. SMC.c: Increase MAX_WCT buffer size to 17. UK/CmdHelp: Add some missing chevrons round the command syntax for required parameters. test/Contentious: Test case for nested contentious character resolution code. Version 2.61. Tagged as 'LanManFS-2_61'
Showing with 19 additions and 23 deletions