clilist

Jeremy Allison jra at samba.org
Wed Mar 23 01:52:17 GMT 2005


On Tue, Mar 22, 2005 at 08:43:22PM -0500, Derrell.Lipman at UnwiredUniverse.com wrote:
> Ok, here's what I know so far...
> 
> The over-the-wire stuff looks approximately correct.  However, when
> cli_list_new() calls fn(mnt,&finfo, Mask, state) near the bottom of the
> function, it properly calls it with each of the files in the FINDFIRST
> response (including all that are in continuation packets) but then appears to
> call it with the file name from last entry in the FIRSTFIRST response for what
> should be each of the files in the FINDNEXT responses.

The part of the function that calls fn() looks like :

        for (p=dirlist,i=0;i<total_received;i++) {
                const char *mnt = cli_cm_get_mntpoint( cli );
                                                                                                                             
                p += interpret_long_filename(cli,info_level,p,&finfo);
                                                                                                                             
                fn( mnt,&finfo, Mask, state );
        }
                                                                                                                             

dirlist should be the raw memory buffer containing the level responses
from the findfirst appended with all subsequent findnext's. total_received
is the sum of all the ff_searchcount returned from the client. The
interpret_long_filename returns the number of bytes consumed in this 
filename entry. So p should be walking through the dirlist buffer one
entry at a time once all the ff/fn level info has been placed into it.

I don't see a bug in this.... 

Jeremy.


More information about the samba-technical mailing list