[SCM] Samba Shared Repository - branch master updated
Günther Deschner
gd at samba.org
Tue May 18 07:34:58 MDT 2010
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 <gd at samba.org>
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
More information about the samba-cvs
mailing list