Author: metze Date: 2005-09-10 08:47:15 +0000 (Sat, 10 Sep 2005) New Revision: 10142
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10142 Log: [EMAIL PROTECTED] (orig r10132): jra | 2005-09-09 23:45:36 +0200 Confirm that openX with OPEN_EXEC implies read only. Jeremy. [EMAIL PROTECTED] (orig r10138): jra | 2005-09-10 04:21:44 +0200 Fix the mapping table (as tested in smbtorture). EXEC_ACCESS should map to SEC_RIGHTS_FILE_READ, not READ|WRITE. Jeremy. [EMAIL PROTECTED] (orig r10140): metze | 2005-09-10 10:41:57 +0200 reorder some stuff, for nicer output metze [EMAIL PROTECTED] (orig r10141): metze | 2005-09-10 10:46:28 +0200 if some of the LIBNDR_ALIGN_* flags and LIBNDR_FLAG_REMAINING are set, ndr_pull_data_blob() doesn't work correct. so make them exclute each other. jelmer, tridge: does that look correct? it fixes a problem, abartlet had with krb5pac.idl, where the align flags are inherited from the parent, and we want to get the [flag(NDR_REMAINING)] DATA_BLOB signature; metze Modified: branches/tmp/samba4-winsrepl/ branches/tmp/samba4-winsrepl/source/build/smb_build/makefile.pm branches/tmp/samba4-winsrepl/source/librpc/ndr/ndr.c branches/tmp/samba4-winsrepl/source/ntvfs/ntvfs_generic.c branches/tmp/samba4-winsrepl/source/torture/raw/open.c Changeset: Property changes on: branches/tmp/samba4-winsrepl ___________________________________________________________________ Name: svk:merge - 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/SAMBA_4_0:10129 3a72dc49-98ff-0310-ab52-9b7ed7945d91:/local/samba4:9495 a953eb74-4aff-0310-a63c-855d20285ebb:/local/samba4:11627 + 0c0555d6-39d7-0310-84fc-f1cc0bd64818:/branches/SAMBA_4_0:10141 3a72dc49-98ff-0310-ab52-9b7ed7945d91:/local/samba4:9495 a953eb74-4aff-0310-a63c-855d20285ebb:/local/samba4:11627 Modified: branches/tmp/samba4-winsrepl/source/build/smb_build/makefile.pm =================================================================== --- branches/tmp/samba4-winsrepl/source/build/smb_build/makefile.pm 2005-09-10 08:46:28 UTC (rev 10141) +++ branches/tmp/samba4-winsrepl/source/build/smb_build/makefile.pm 2005-09-10 08:47:15 UTC (rev 10142) @@ -72,19 +72,23 @@ { return << "__EOD__"; SHELL=$config{SHELL} + PERL=$config{PERL} + CC=$config{CC} -CFLAGS=-I\$(srcdir)/include -I\$(srcdir) -D_SAMBA_BUILD_ -DHAVE_CONFIG_H -I\$(srcdir)/lib $config{CFLAGS} $config{CPPFLAGS} +CFLAGS=-I\$(srcdir)/include -I\$(srcdir) -I\$(srcdir)/lib -D_SAMBA_BUILD_ -DHAVE_CONFIG_H $config{CFLAGS} $config{CPPFLAGS} +CPP=$config{CPP} +CPPFLAGS=$config{CPPFLAGS} + LD=$config{LD} -GCOV=$config{GCOV} LD_FLAGS=$config{LDFLAGS} STLD=$config{AR} STLD_FLAGS=-rc SHLD=$config{CC} -SHLD_FLAGS=$config{LDSHFLAGS} +SHLD_FLAGS=$config{LDSHFLAGS} XSLTPROC=$config{XSLTPROC} @@ -92,7 +96,7 @@ YACC=$config{YACC} YAPP=$config{YAPP} -CPP=$config{CPP} +GCOV=$config{GCOV} DEFAULT_TEST_TARGET=$config{DEFAULT_TEST_TARGET} Modified: branches/tmp/samba4-winsrepl/source/librpc/ndr/ndr.c =================================================================== --- branches/tmp/samba4-winsrepl/source/librpc/ndr/ndr.c 2005-09-10 08:46:28 UTC (rev 10141) +++ branches/tmp/samba4-winsrepl/source/librpc/ndr/ndr.c 2005-09-10 08:47:15 UTC (rev 10142) @@ -246,6 +246,12 @@ if (new_flags & LIBNDR_FLAG_BIGENDIAN) { (*pflags) &= ~LIBNDR_FLAG_LITTLE_ENDIAN; } + if (new_flags & LIBNDR_FLAG_REMAINING) { + (*pflags) &= ~LIBNDR_ALIGN_FLAGS; + } + if (new_flags & LIBNDR_ALIGN_FLAGS) { + (*pflags) &= ~LIBNDR_FLAG_REMAINING; + } (*pflags) |= new_flags; } Modified: branches/tmp/samba4-winsrepl/source/ntvfs/ntvfs_generic.c =================================================================== --- branches/tmp/samba4-winsrepl/source/ntvfs/ntvfs_generic.c 2005-09-10 08:46:28 UTC (rev 10141) +++ branches/tmp/samba4-winsrepl/source/ntvfs/ntvfs_generic.c 2005-09-10 08:47:15 UTC (rev 10142) @@ -259,6 +259,7 @@ switch (open_mode & OPENX_MODE_ACCESS_MASK) { case OPENX_MODE_ACCESS_READ: + case OPENX_MODE_ACCESS_EXEC: io2->generic.in.access_mask = SEC_RIGHTS_FILE_READ; break; case OPENX_MODE_ACCESS_WRITE: @@ -266,7 +267,6 @@ break; case OPENX_MODE_ACCESS_RDWR: case OPENX_MODE_ACCESS_FCB: - case OPENX_MODE_ACCESS_EXEC: io2->generic.in.access_mask = SEC_RIGHTS_FILE_READ | SEC_RIGHTS_FILE_WRITE; Modified: branches/tmp/samba4-winsrepl/source/torture/raw/open.c =================================================================== --- branches/tmp/samba4-winsrepl/source/torture/raw/open.c 2005-09-10 08:46:28 UTC (rev 10141) +++ branches/tmp/samba4-winsrepl/source/torture/raw/open.c 2005-09-10 08:47:15 UTC (rev 10142) @@ -265,6 +265,7 @@ union smb_open io; union smb_fileinfo finfo; const char *fname = BASEDIR "\\torture_openx.txt"; + const char *fname_exe = BASEDIR "\\torture_openx.exe"; NTSTATUS status; int fnum = -1, fnum2; BOOL ret = True; @@ -444,8 +445,33 @@ status = smb_raw_open(cli->tree, mem_ctx, &io); CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_NOT_FOUND); + /* Check the mapping for open exec. */ + + /* First create an .exe file. */ + smbcli_unlink(cli->tree, fname_exe); + fnum = create_complex_file(cli, mem_ctx, fname_exe); + smbcli_close(cli->tree, fnum); + + io.openx.level = RAW_OPEN_OPENX; + io.openx.in.fname = fname_exe; + io.openx.in.flags = OPENX_FLAGS_ADDITIONAL_INFO; + io.openx.in.open_mode = OPENX_MODE_ACCESS_EXEC | OPENX_MODE_DENY_NONE; + io.openx.in.search_attrs = 0; + io.openx.in.file_attrs = 0; + io.openx.in.write_time = 0; + io.openx.in.size = 0; + io.openx.in.timeout = 0; + status = smb_raw_open(cli->tree, mem_ctx, &io); + CHECK_STATUS(status, NT_STATUS_OK); + + /* Can we read and write ? */ + CHECK_RDWR(io.openx.out.fnum, RDWR_RDONLY); + smbcli_close(cli->tree, io.openx.out.fnum); + smbcli_unlink(cli->tree, fname); + done: smbcli_close(cli->tree, fnum); + smbcli_unlink(cli->tree, fname_exe); smbcli_unlink(cli->tree, fname); return ret;
