s4:torture/vfs/fruit: enable AAPL extensions in a bunch of tests
[samba.git] / source3 / winbindd / idmap_nss.c
index bfdb319c90bae0fc1eeed5605e95c0a45a526b3b..3fe98cbc729666e4442565febede3132e922ee06 100644 (file)
@@ -20,6 +20,7 @@
 */
 
 #include "includes.h"
+#include "system/passwd.h"
 #include "winbindd.h"
 #include "nsswitch/winbind_client.h"
 #include "idmap.h"
 #define DBGC_CLASS DBGC_IDMAP
 
 /*****************************
- Initialise idmap database. 
+ Initialise idmap database.
 *****************************/
 
 static NTSTATUS idmap_nss_int_init(struct idmap_domain *dom)
-{      
+{
        return NT_STATUS_OK;
 }
 
 /**********************************
- lookup a set of unix ids. 
+ lookup a set of unix ids.
 **********************************/
 
 static NTSTATUS idmap_nss_unixids_to_sids(struct idmap_domain *dom, struct id_map **ids)
@@ -119,7 +120,7 @@ static NTSTATUS idmap_nss_unixids_to_sids(struct idmap_domain *dom, struct id_ma
 }
 
 /**********************************
- lookup a set of sids. 
+ lookup a set of sids.
 **********************************/
 
 static NTSTATUS idmap_nss_sids_to_unixids(struct idmap_domain *dom, struct id_map **ids)
@@ -134,6 +135,7 @@ static NTSTATUS idmap_nss_sids_to_unixids(struct idmap_domain *dom, struct id_ma
        for (i = 0; ids[i]; i++) {
                struct group *gr;
                enum lsa_SidType type;
+               const char *p = NULL;
                char *name = NULL;
                bool ret;
 
@@ -141,8 +143,9 @@ static NTSTATUS idmap_nss_sids_to_unixids(struct idmap_domain *dom, struct id_ma
                   the following call will not recurse so this is safe */
                (void)winbind_on();
                ret = winbind_lookup_sid(talloc_tos(), ids[i]->sid, NULL,
-                                        (const char **)&name, &type);
+                                        &p, &type);
                (void)winbind_off();
+               name = discard_const_p(char, p);
 
                if (!ret) {
                        /* TODO: how do we know if the name is really not mapped,
@@ -199,7 +202,7 @@ static struct idmap_methods nss_methods = {
        .sids_to_unixids = idmap_nss_sids_to_unixids,
 };
 
-NTSTATUS idmap_nss_init(void)
+NTSTATUS idmap_nss_init(TALLOC_CTX *mem_ctx)
 {
        return smb_register_idmap(SMB_IDMAP_INTERFACE_VERSION, "nss", &nss_methods);
 }