--- /etc/inc/interfaces.inc.orig        Mon Nov 19 17:10:49 2007
+++ /etc/inc/interfaces.inc     Mon Nov 19 17:16:57 2007
@@ -436,6 +436,7 @@
                if ($vip['mode'] == "carp") {
                        $vip_password = $vip['password'];
                        $vip_password = str_replace(" ", "", $vip_password);
+                       $vip_password = str_replace("'", "\'", $vip_password);
                        /* create the carp interface and setup */
                        mwexec("/sbin/ifconfig carp" . $carp_instances_counter . " create");

@@ -444,7 +445,7 @@

                        $broadcast_address = gen_subnet_max($vip['subnet'], $vip['subnet_bits']);
                        if($vip['password'] != "")
-                               $password = " pass \"" . $vip_password . "\"";
+                               $password = " pass '" . $vip_password . "'";
                        if($debugging)
                                echo "Configuring carp{$carp_instances_counter}.\n";
                        fwrite($fd, "/sbin/ifconfig carp" . $carp_instances_counter . " " . $vip['subnet'] . "/" . $vip['subnet_bits'] . " broadcast " . $broadcast_address . " vhid " . $vip['vhid'] . "{$carpdev} advskew 200 " . $password . "\n");
@@ -503,12 +504,15 @@
                /* bail if this isn't a carp VIP */
                if ($vip['mode'] != "carp")
                        continue;
+               $vip_password = $vip['password'];
+               $vip_password = str_replace(" ", "", $vip_password);
+               $vip_password = str_replace("'", "\'", $vip_password);

                if($debugging)
                        echo "Upping interface carp{$carp_instances_counter}.\n";
                $broadcast_address = gen_subnet_max($vip['subnet'], $vip['subnet_bits']);
                if($vip['password'] != "")
-                       $password = " pass " . $vip['password'];
+                       $password = " pass '" . $vip_password . "'";
                if($debugging)
                        echo "/sbin/ifconfig carp" . $carp_instances_counter . " " . $vip['subnet'] . "/" . $vip['subnet_bits'] . " broadcast " . $broadcast_address . " vhid " . $vip['vhid'] . "{$carpdev} advskew " . $vip['advskew'] . $password . "\n";
                mwexec("/sbin/ifconfig carp" . $carp_instances_counter . " " . $vip['subnet'] . "/" . $vip['subnet_bits'] . " broadcast " . $broadcast_address . " vhid " . $vip['vhid'] . "{$carpdev} advskew " . $vip['advskew'] . $password);

