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;

Reply via email to