r18579: fixed boolean parameters on big endian hosts which have
authorAndrew Tridgell <tridge@samba.org>
Sat, 16 Sep 2006 14:58:51 +0000 (14:58 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:18:50 +0000 (14:18 -0500)
sizeof(BOOL) != sizeof(int)

this broke with the conversion to a real BOOL type
(This used to be commit 75dab73ac603968ce49c605e07d43051dbfa7398)

source4/param/loadparm.c

index 55d15653f6d19b8181aa6c040ab34c8c093fa4cd..2b2926d053e24a38ca514d5df381bc2c52e7c040 100644 (file)
@@ -1861,11 +1861,14 @@ BOOL lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue
        /* now switch on the type of variable it is */
        switch (parm_table[parmnum].type)
        {
-               case P_BOOL:
-                       if (!set_boolean(pszParmValue, parm_ptr)) {
+               case P_BOOL: {
+                       BOOL b;
+                       if (!set_boolean(pszParmValue, &b)) {
                                DEBUG(0,("lp_do_parameter(%s): value is not boolean!\n", pszParmValue));
                                return False;
                        }
+                       *(int *)parm_ptr = b;
+                       }
                        break;
 
                case P_INTEGER: