Author: jerry Date: 2007-04-10 22:59:42 +0000 (Tue, 10 Apr 2007) New Revision: 22159
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=22159 Log: BUG 4501 (second half of fix): Just disable the uid/gid allocation if no idmap alloca backend has been defined and we are not using a 3.0.24 idmap backend compatible configuration. Modified: branches/SAMBA_3_0/source/nsswitch/idmap.c branches/SAMBA_3_0_25/source/nsswitch/idmap.c Changeset: Modified: branches/SAMBA_3_0/source/nsswitch/idmap.c =================================================================== --- branches/SAMBA_3_0/source/nsswitch/idmap.c 2007-04-10 21:14:44 UTC (rev 22158) +++ branches/SAMBA_3_0/source/nsswitch/idmap.c 2007-04-10 22:59:42 UTC (rev 22159) @@ -259,7 +259,7 @@ char *compat_backend = NULL; char *compat_params = NULL; const char **dom_list = NULL; - char *alloc_backend; + char *alloc_backend = NULL; BOOL default_already_defined = False; BOOL pri_dom_is_in_list = False; int compat = 0; @@ -561,11 +561,11 @@ } - /*************************** - * initialize alloc module - */ - DEBUG(1, ("Initializing idmap alloc module\n")); + /* Initialize alloc module */ + DEBUG(3, ("Initializing idmap alloc module\n")); + + alloc_backend = NULL; if (compat) { alloc_backend = talloc_strdup(idmap_ctx, compat_backend); } else { @@ -573,12 +573,11 @@ if (ab && (ab[0] != '\0')) { alloc_backend = talloc_strdup(idmap_ctx, lp_idmap_alloc_backend()); - } else { - alloc_backend = talloc_strdup(idmap_ctx, "tdb"); } } - IDMAP_CHECK_ALLOC(alloc_backend); + if ( alloc_backend ) { + alloc_methods = get_alloc_methods(alloc_backends, alloc_backend); if ( ! alloc_methods) { ret = smb_probe_module("idmap", alloc_backend); @@ -603,6 +602,7 @@ else ret = NT_STATUS_UNSUCCESSFUL; } + } /* cleanpu temporary strings */ TALLOC_FREE( compat_backend ); Modified: branches/SAMBA_3_0_25/source/nsswitch/idmap.c =================================================================== --- branches/SAMBA_3_0_25/source/nsswitch/idmap.c 2007-04-10 21:14:44 UTC (rev 22158) +++ branches/SAMBA_3_0_25/source/nsswitch/idmap.c 2007-04-10 22:59:42 UTC (rev 22159) @@ -259,7 +259,7 @@ char *compat_backend = NULL; char *compat_params = NULL; const char **dom_list = NULL; - char *alloc_backend; + char *alloc_backend = NULL; BOOL default_already_defined = False; BOOL pri_dom_is_in_list = False; int compat = 0; @@ -561,11 +561,11 @@ } - /*************************** - * initialize alloc module - */ - DEBUG(1, ("Initializing idmap alloc module\n")); + /* Initialize alloc module */ + DEBUG(3, ("Initializing idmap alloc module\n")); + + alloc_backend = NULL; if (compat) { alloc_backend = talloc_strdup(idmap_ctx, compat_backend); } else { @@ -573,12 +573,11 @@ if (ab && (ab[0] != '\0')) { alloc_backend = talloc_strdup(idmap_ctx, lp_idmap_alloc_backend()); - } else { - alloc_backend = talloc_strdup(idmap_ctx, "tdb"); } } - IDMAP_CHECK_ALLOC(alloc_backend); + if ( alloc_backend ) { + alloc_methods = get_alloc_methods(alloc_backends, alloc_backend); if ( ! alloc_methods) { ret = smb_probe_module("idmap", alloc_backend); @@ -603,6 +602,7 @@ else ret = NT_STATUS_UNSUCCESSFUL; } + } /* cleanpu temporary strings */ TALLOC_FREE( compat_backend );