[Samba] Trouble with banking software on Samba share
Jeremy Allison
jra at samba.org
Thu May 9 09:41:24 GMT 2002
On Thu, May 09, 2002 at 10:10:59AM -0600, Mike Babnick wrote:
> Hello list members!
>
> I joined this list on May 1st and I can see I have a lot to learn. Thanks
> to everyone - especially those *@samba.org folks. You are so appreciated.
>
> Background in my plea for help: I'm the IT guy for a family owned community
> bank in Southern Colorado. I am very tired of the limitations and security
> problems of Micro$oft and have committed to learning and using Linux (and
> Samba) in hopes of replacing the Windows NT servers, and eventually some
> workstations, we are currently using.
>
> I am successfully using Samba on several servers running RedHat 7.2 with
> various versions of Samba (2.2.1a, 2.2.3a, or 2.2.4). But there is one
> piece of software which does not function right while hosted on a Samba
> file share. It's software built specifically for banks and so it's not
> built as well as a lot of software. Anyway, I'll do a database query with
> this software (database is not on the Samba box) and the first one will
> work. However, every time I click to query the database record further,
> the software comes back with an error message that it can't find a needed
> DLL file. As you will see below, it really isn't a DLL file missing . . .
>
> Here is what I see in a packet capture from Ethereal when I initiate the
> second query.
>
> From client to server: NT Create AndX Request, Path:
> \ITI\PREMIER\PRM1101.EXE\2
> From server to client: NT Create AndX Response, Error: STATUS_NOT_A_DRIECTORY
>
> Now, I don't know why the software adds the \2 at the end when you do the
> second query, but somehow it doesn't bother the software while hosted on a
> Windows box.
>
> Here is what I see in a level 8 Samba log file at the same time:
>
> [2002/05/08 16:33:59, 5] smbd/filename.c:unix_convert(149)
> unix_convert called on file "\ITI\PREMIER\PRM1101.EXE\2"
> [2002/05/08 16:33:59, 3] lib/util.c:unix_clean_name(387)
> unix_clean_name [/ITI/PREMIER/PRM1101.EXE/2]
> [2002/05/08 16:33:59, 5] smbd/mangle.c:is_8_3(341)
> Checking 2 for 8.3
> [2002/05/08 16:33:59, 5] smbd/filename.c:unix_convert(224)
> unix_convert begin: name = ITI/Premier/prm1101.exe/2, dirpath =
> ITI/Premier/prm1101.exe, start = 2
> [2002/05/08 16:33:59, 3] smbd/filename.c:scan_directory(495)
> scan dir didn't open dir [ITI/Premier/prm1101.exe]
> [2002/05/08 16:33:59, 5] smbd/filename.c:unix_convert(354)
> New file 2
> [2002/05/08 16:33:59, 3] smbd/dosmode.c:unix_mode(111)
> unix_mode(ITI/Premier/prm1101.exe/2) returning 0766
> [2002/05/08 16:33:59, 5] smbd/files.c:file_new(120)
> allocated file structure 9714, fnum = 13810 (9 used)
> [2002/05/08 16:33:59, 8] lib/util.c:is_in_path(1143)
> is_in_path: ITI/Premier/prm1101.exe/2
> [2002/05/08 16:33:59, 8] lib/util.c:is_in_path(1148)
> is_in_path: no name list.
> [2002/05/08 16:33:59, 3] lib/util.c:unix_clean_name(387)
> unix_clean_name [ITI/Premier/prm1101.exe/2]
> [2002/05/08 16:33:59, 4] smbd/open.c:open_file_shared1(891)
> calling open_file with flags=0x0 flags2=0x0 mode=0766
> [2002/05/08 16:33:59, 3] smbd/open.c:open_file(162)
> Error opening file ITI/Premier/prm1101.exe/2 (Not a directory)
> (local_flags=0) (flags=0)
> [2002/05/08 16:33:59, 5] smbd/files.c:file_free(338)
> freed files structure 13810 (8 used)
> [2002/05/08 16:33:59, 3] smbd/error.c:error_packet(91)
> error string = Not a directory
> [2002/05/08 16:33:59, 3] smbd/error.c:error_packet(106)
> error packet at smbd/nttrans.c(870) cmd=162 (SMBntcreateX)
> NT_STATUS_NOT_A_DIRECTORY
>
> So Samba thinks, and rightly so, that the \2 at the end is a directory
> name. Only a virus like Microsoft Windows could understand
> \ITI\PREMIER\PRM1101.EXE\2 as a file name with a \2 as some sort of command
> line parameter.
>
> I've tried so many things I can't remember them all. I've tried making a
> link \ITI\PREMIER\PRM1101.EXE\2 pointing to \ITI\PREMIER\PRM1101.EXE. I
> read a little about name mangling and tried to use a mangled map rule to
> change *.exe\2 to *.exe or *.exe \2. I've been trying to figure out how I
> might implement rewrite rules like you can in Apache or sendmail.
>
> I would appreciate any help/ideas/work-arounds anyone could give me. This
> problem is the only thing keeping me from removing all the Windows servers
> from our branch offices!!!
In that case we must help :-). This looks similar to the bug
noted in the 2.2.4 release notes... hmmm.
Can you get me an ethereal capture trace from a windows client to
windows server run of the software (successful) and a windows client
to Samba server 2.2.4 run of the software (fails) so I can examine
the problem.
Alternatively, if you add the line "nt status support = no" and
restart the Samba server you may find this works correctly.
Cheers,
Jeremy Allison,
Samba Team.
More information about the samba
mailing list