summaryrefslogtreecommitdiffstats
path: root/source/passdb/pdb_interface.c
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2007-02-22 20:52:27 +0000
committerGerald Carter <jerry@samba.org>2007-02-22 20:52:27 +0000
commit0a78fab6af73ce8042ebb11194c8a1ec78c34711 (patch)
tree430382a68adcab7daca49753014c2f948854afc1 /source/passdb/pdb_interface.c
parent504bb62b23d9a9691fed137abbb5e3b2f1c18b72 (diff)
downloadsamba-0a78fab6af73ce8042ebb11194c8a1ec78c34711.tar.gz
samba-0a78fab6af73ce8042ebb11194c8a1ec78c34711.tar.xz
samba-0a78fab6af73ce8042ebb11194c8a1ec78c34711.zip
r21507: Fix some "cannot access LDAP when no root" bugs.
The two culprits were * pdb_get_account_policy() * pdb_get_group_sid()
Diffstat (limited to 'source/passdb/pdb_interface.c')
-rw-r--r--source/passdb/pdb_interface.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/source/passdb/pdb_interface.c b/source/passdb/pdb_interface.c
index 2c38f2cf3f8..ba251bc4cfb 100644
--- a/source/passdb/pdb_interface.c
+++ b/source/passdb/pdb_interface.c
@@ -987,13 +987,25 @@ NTSTATUS pdb_lookup_names(const DOM_SID *domain_sid,
BOOL pdb_get_account_policy(int policy_index, uint32 *value)
{
struct pdb_methods *pdb = pdb_get_methods();
- return NT_STATUS_IS_OK(pdb->get_account_policy(pdb, policy_index, value));
+ NTSTATUS status;
+
+ become_root();
+ status = pdb->get_account_policy(pdb, policy_index, value);
+ unbecome_root();
+
+ return NT_STATUS_IS_OK(status);
}
BOOL pdb_set_account_policy(int policy_index, uint32 value)
{
struct pdb_methods *pdb = pdb_get_methods();
- return NT_STATUS_IS_OK(pdb->set_account_policy(pdb, policy_index, value));
+ NTSTATUS status;
+
+ become_root();
+ status = pdb->set_account_policy(pdb, policy_index, value);
+ unbecome_root();
+
+ return NT_STATUS_IS_OK(status);
}
BOOL pdb_get_seq_num(time_t *seq_num)