The branch, master has been updated
       via  007b996... s3-net: also dump security descriptors from 
ntprinters.tdb in "net printing dump".
      from  a79b446... s4:smb_server: add dfs smbtorture to selftests

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 007b9962676efef4cf2230f304ce263ce1e75555
Author: Günther Deschner <[email protected]>
Date:   Tue May 18 15:32:47 2010 +0200

    s3-net: also dump security descriptors from ntprinters.tdb in "net printing 
dump".
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source3/utils/net_printing.c |   39 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 39 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/utils/net_printing.c b/source3/utils/net_printing.c
index a04601f..33de480 100644
--- a/source3/utils/net_printing.c
+++ b/source3/utils/net_printing.c
@@ -26,6 +26,7 @@
 #define FORMS_PREFIX "FORMS/"
 #define DRIVERS_PREFIX "DRIVERS/"
 #define PRINTERS_PREFIX "PRINTERS/"
+#define SECDESC_PREFIX "SECDESC/"
 
 static void dump_form(TALLOC_CTX *mem_ctx,
                      const char *key_name,
@@ -117,6 +118,37 @@ static void dump_printer(TALLOC_CTX *mem_ctx,
        }
 }
 
+static void dump_sd(TALLOC_CTX *mem_ctx,
+                   const char *key_name,
+                   unsigned char *data,
+                   size_t length)
+{
+       enum ndr_err_code ndr_err;
+       DATA_BLOB blob;
+       char *s;
+       struct sec_desc_buf r;
+
+       printf("found security descriptor: %s\n", key_name);
+
+       blob = data_blob_const(data, length);
+
+       ZERO_STRUCT(r);
+
+       ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, &r,
+                  (ndr_pull_flags_fn_t)ndr_pull_sec_desc_buf);
+       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+               d_fprintf(stderr, _("security descriptor pull failed: %s\n"),
+                         ndr_errstr(ndr_err));
+               return;
+       }
+
+       s = NDR_PRINT_STRUCT_STRING(mem_ctx, sec_desc_buf, &r);
+       if (s) {
+               printf("%s\n", s);
+       }
+}
+
+
 static int net_printing_dump(struct net_context *c, int argc,
                             const char **argv)
 {
@@ -163,6 +195,13 @@ static int net_printing_dump(struct net_context *c, int 
argc,
                        SAFE_FREE(dbuf.dptr);
                        continue;
                }
+
+               if (strncmp((const char *)kbuf.dptr, SECDESC_PREFIX, 
strlen(SECDESC_PREFIX)) == 0) {
+                       dump_sd(ctx, (const char 
*)kbuf.dptr+strlen(SECDESC_PREFIX), dbuf.dptr, dbuf.dsize);
+                       SAFE_FREE(dbuf.dptr);
+                       continue;
+               }
+
        }
 
        ret = 0;


-- 
Samba Shared Repository

Reply via email to