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 );

Reply via email to