s4-loadparm: fix the FLAG_DEFAULT settings on specially handled parameters
authorAndrew Tridgell <tridge@samba.org>
Thu, 11 Nov 2010 02:56:44 +0000 (13:56 +1100)
committerAndrew Tridgell <tridge@samba.org>
Thu, 11 Nov 2010 03:39:23 +0000 (03:39 +0000)
parameters with special handlers also need to clear the FLAG_DEFAULT
flag when set

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Thu Nov 11 03:39:23 UTC 2010 on sn-devel-104

source4/param/loadparm.c

index 74b394e5fca535cfee358bef2163ebc836927298..09d4f394d387e5e7c97e3bae7769ded63c12c62e 100644 (file)
@@ -1627,9 +1627,13 @@ static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr,
        int i;
        /* if it is a special case then go ahead */
        if (parm_table[parmnum].special) {
-               parm_table[parmnum].special(lp_ctx, pszParmValue,
-                                           (char **)parm_ptr);
-               return true;
+               bool ret;
+               ret = parm_table[parmnum].special(lp_ctx, pszParmValue,
+                                                 (char **)parm_ptr);
+               if (!ret) {
+                       return false;
+               }
+               goto mark_non_default;
        }
 
        /* now switch on the type of variable it is */
@@ -1701,6 +1705,7 @@ static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr,
                        break;
        }
 
+mark_non_default:
        if (on_globals && (lp_ctx->flags[parmnum] & FLAG_DEFAULT)) {
                lp_ctx->flags[parmnum] &= ~FLAG_DEFAULT;
                /* we have to also unset FLAG_DEFAULT on aliases */