summaryrefslogtreecommitdiff
path: root/source4/torture/raw/setfileinfo.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2003-09-02 04:37:33 +0000
committerAndrew Tridgell <tridge@samba.org>2003-09-02 04:37:33 +0000
commit0becf4d68329ca599f3e34ee97ca3f72d0e9425f (patch)
tree14a66389e715d34a43e65d590650fc356113c796 /source4/torture/raw/setfileinfo.c
parent11c5869a450d5f78a9395889ec03f77732cc8be5 (diff)
downloadsamba-0becf4d68329ca599f3e34ee97ca3f72d0e9425f.tar.gz
samba-0becf4d68329ca599f3e34ee97ca3f72d0e9425f.tar.bz2
samba-0becf4d68329ca599f3e34ee97ca3f72d0e9425f.zip
thanks to ntfsd and some google searches I worked out what the unknown
fields in level 261 and level 262 of directory search are, plus the names of the levels the unknown fields are a 64bit unique file id, and match the 64 bit number from the internal_information qfileinfo level (This used to be commit b69f54eb028a24144a2e813f059b08644118ab09)
Diffstat (limited to 'source4/torture/raw/setfileinfo.c')
-rw-r--r--source4/torture/raw/setfileinfo.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/source4/torture/raw/setfileinfo.c b/source4/torture/raw/setfileinfo.c
index 7645289128..0871d25bc5 100644
--- a/source4/torture/raw/setfileinfo.c
+++ b/source4/torture/raw/setfileinfo.c
@@ -31,7 +31,7 @@ BOOL torture_raw_sfileinfo(int dummy)
struct cli_state *cli;
BOOL ret = True;
TALLOC_CTX *mem_ctx;
- int fnum_saved, fnum2, fnum = -1;
+ int fnum_saved, d_fnum, fnum2, fnum = -1;
char *fnum_fname;
char *fnum_fname_new;
char *path_fname;
@@ -478,6 +478,13 @@ BOOL torture_raw_sfileinfo(int dummy)
sfinfo.rename_information.in.new_name = path_fname+strlen(BASEDIR)+1;
CHECK_CALL_PATH(RENAME_INFORMATION, NT_STATUS_OK);
CHECK_STR(NAME_INFO, name_info, fname.s, path_fname);
+
+ printf("Trying rename with a root fid\n");
+ d_fnum = create_directory_handle(cli->tree, BASEDIR);
+ sfinfo.rename_information.in.new_name = fnum_fname_new+strlen(BASEDIR)+1;
+ sfinfo.rename_information.in.root_fid = d_fnum;
+ CHECK_CALL_FNUM(RENAME_INFORMATION, NT_STATUS_INVALID_PARAMETER);
+ CHECK_STR(NAME_INFO, name_info, fname.s, fnum_fname);
#endif
#if 0
@@ -491,6 +498,7 @@ BOOL torture_raw_sfileinfo(int dummy)
#endif
done:
+ smb_raw_exit(cli->session);
cli_close(cli, fnum);
if (!cli_unlink(cli, fnum_fname)) {
printf("Failed to delete %s - %s\n", fnum_fname, cli_errstr(cli));