r481: Fix up assert caught by check_path_syntax.
authorJeremy Allison <jra@samba.org>
Wed, 5 May 2004 01:06:23 +0000 (01:06 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:51:25 +0000 (10:51 -0500)
Jeremy.
(This used to be commit 8a58bd39da596cac68abc0143cdb17981642daf6)

source3/smbd/nttrans.c

index e4ffec339b7ab9f88d43af8ff97eb874eefb178b..7e4cac7b38510d76a79844cf4e51a33593bf9a04 100644 (file)
@@ -643,6 +643,7 @@ create_options = 0x%x root_dir_fid = 0x%x\n", flags, desired_access, file_attrib
                /*
                 * This filename is relative to a directory fid.
                 */
+               pstring rel_fname;
                files_struct *dir_fsp = file_fsp(inbuf,smb_ntcreate_RootDirectoryFid);
                size_t dir_name_len;
 
@@ -695,11 +696,12 @@ create_options = 0x%x root_dir_fid = 0x%x\n", flags, desired_access, file_attrib
                        dir_name_len++;
                }
 
-               srvstr_get_path(inbuf, &fname[dir_name_len], smb_buf(inbuf), sizeof(fname)-dir_name_len, 0, STR_TERMINATE, &status);
+               srvstr_get_path(inbuf, rel_fname, smb_buf(inbuf), sizeof(rel_fname), 0, STR_TERMINATE, &status);
                if (!NT_STATUS_IS_OK(status)) {
                        END_PROFILE(SMBntcreateX);
                        return ERROR_NT(status);
                }
+               pstrcat(fname, rel_fname);
        } else {
                srvstr_get_path(inbuf, fname, smb_buf(inbuf), sizeof(fname), 0, STR_TERMINATE, &status);
                if (!NT_STATUS_IS_OK(status)) {
@@ -1207,7 +1209,6 @@ static int call_nt_transact_create(connection_struct *conn, char *inbuf, char *o
                /*
                 * This filename is relative to a directory fid.
                 */
-
                files_struct *dir_fsp = file_fsp(params,4);
                size_t dir_name_len;