smbclient with mput bug

mohamed.kalai mohamed.kalai at wanadoo.fr
Wed Jul 5 23:37:19 GMT 2000


There is a problem with the mput command under smbclient, if you use the directory recursion ( default mode, however recurse off works well);  
cause client.c source uses the parameter  maxdepth with the UNIX cmd find
parameter which doesn't exist as far as I know on IRIX, HPUX and Solaris.


Here's the faulty part of client.c:

static void cmd_mput(void)
{
        pstring lname;
        pstring rname;
        fstring buf;
        char *p=buf;
         
        while (next_token(NULL,p,NULL,sizeof(buf))) {
                SMB_STRUCT_STAT st;
                pstring cmd;
                pstring tmpname; 
                FILE *f; 
                
                slprintf(tmpname,sizeof(pstring)-1,
                         "%s/ls.smb.%d",tmpdir(),(int)getpid());
                if (recurse)
                        slprintf(cmd,sizeof(pstring)-1,
                                "find . -name \"%s\" -print > %s",p,tmpname);
                else
                        slprintf(cmd,sizeof(pstring)-1,
                                "find . -maxdepth 1 -name \"%s\" -print > %s",p,tmpname);
                system(cmd);

It's seems easy to modify the cmd value, but I'd prefer to know if
there is somebody who has already dealt whith this bug
and how.

Thanks in advance.

M. KALAI

-------------- next part --------------
HTML attachment scrubbed and removed


More information about the samba mailing list