[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