svn commit: samba r26318 - in branches/SAMBA_4_0: . source/param

jelmer at samba.org jelmer at samba.org
Thu Dec 6 21:16:41 GMT 2007


Author: jelmer
Date: 2007-12-06 21:16:40 +0000 (Thu, 06 Dec 2007)
New Revision: 26318

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26318

Log:
Don't rely on SAMDB functions in secrets database.
Modified:
   branches/SAMBA_4_0/
   branches/SAMBA_4_0/source/param/secrets.c


Changeset:

Property changes on: branches/SAMBA_4_0
___________________________________________________________________
Name: bzr:revision-info
...skipped...
Name: bzr:revision-id:v3-trunk0
...skipped...

Modified: branches/SAMBA_4_0/source/param/secrets.c
===================================================================
--- branches/SAMBA_4_0/source/param/secrets.c	2007-12-06 21:10:24 UTC (rev 26317)
+++ branches/SAMBA_4_0/source/param/secrets.c	2007-12-06 21:16:40 UTC (rev 26318)
@@ -30,7 +30,7 @@
 #include "lib/tdb/include/tdb.h"
 #include "lib/util/util_tdb.h"
 #include "lib/util/util_ldb.h"
-#include "dsdb/samdb/samdb.h"
+#include "librpc/gen_ndr/ndr_security.h"
 
 static struct tdb_wrap *tdb;
 
@@ -148,6 +148,8 @@
 	int ldb_ret;
 	const char *attrs[] = { "objectSid", NULL };
 	struct dom_sid *result = NULL;
+	const struct ldb_val *v;
+	enum ndr_err_code ndr_err;
 
 	ldb = secrets_db_connect(mem_ctx, lp_ctx);
 	if (ldb == NULL) {
@@ -180,13 +182,25 @@
 		return NULL;
 	}
 
-	result = samdb_result_dom_sid(mem_ctx, msgs[0], "objectSid");
-	if (result == NULL) {
+	v = ldb_msg_find_ldb_val(msgs[0], "objectSid");
+	if (v == NULL) {
 		DEBUG(0, ("Domain object for %s does not contain a SID!\n",
 			  domain));
+		return NULL;
+	}
+	result = talloc(mem_ctx, struct dom_sid);
+	if (result == NULL) {
 		talloc_free(ldb);
 		return NULL;
 	}
 
+	ndr_err = ndr_pull_struct_blob(v, result, result,
+				       (ndr_pull_flags_fn_t)ndr_pull_dom_sid);
+	if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+		talloc_free(result);
+		talloc_free(ldb);
+		return NULL;
+	}
+
 	return result;
 }



More information about the samba-cvs mailing list