No need for fstring manipulation here (Tcon&X), just use string pointers.
authorAndrew Bartlett <abartlet@samba.org>
Sun, 1 Dec 2002 03:16:59 +0000 (03:16 +0000)
committerAndrew Bartlett <abartlet@samba.org>
Sun, 1 Dec 2002 03:16:59 +0000 (03:16 +0000)
Andrew Bartlett

source/smbd/reply.c

index 2c29ffdf51f9084cae9b8a07bdf11cb1ed228e23..d09beb7429b4aceda5720f6954df7d7c1bb28166 100644 (file)
@@ -202,7 +202,7 @@ int reply_tcon(connection_struct *conn,
 
 int reply_tcon_and_X(connection_struct *conn, char *inbuf,char *outbuf,int length,int bufsize)
 {
-       fstring service;
+       const char *service;
        DATA_BLOB password;
        pstring devicename;
        NTSTATUS nt_status;
@@ -213,7 +213,7 @@ int reply_tcon_and_X(connection_struct *conn, char *inbuf,char *outbuf,int lengt
        extern BOOL global_encrypted_passwords_negotiated;
        START_PROFILE(SMBtconX);        
 
-       *service = *devicename = 0;
+       *devicename = 0;
 
        /* we might have to close an old one */
        if ((SVAL(inbuf,smb_vwv2) & 0x1) && conn) {
@@ -233,26 +233,28 @@ int reply_tcon_and_X(connection_struct *conn, char *inbuf,char *outbuf,int lengt
        }
 
        p = smb_buf(inbuf) + passlen;
+
        p += srvstr_pull_buf(inbuf, path, p, sizeof(path), STR_TERMINATE);
 
        /*
         * the service name can be either: \\server\share
         * or share directly like on the DELL PowerVault 705
         */
+       
        if (*path=='\\') {      
                q = strchr_m(path+2,'\\');
                if (!q) {
                        END_PROFILE(SMBtconX);
                        return(ERROR_DOS(ERRDOS,ERRnosuchshare));
                }
-               fstrcpy(service,q+1);
+               service = q+1;
        }
        else
-               fstrcpy(service,path);
+               service = path;
                
        p += srvstr_pull(inbuf, devicename, p, sizeof(devicename), 6, STR_ASCII);
 
-       DEBUG(4,("Got device type %s\n",devicename));
+       DEBUG(4,("Got device type %s for %s\n",devicename, service));
 
        conn = make_connection(service,password,devicename,vuid,&nt_status);