tbrehm
2009-06-10 47cca9bb2f0736cff62ae5af39aff0d88f20eca1
Fixed: FS#767 - Make sure ServerAlias directive never exceeds 8192 bytes 
2 files modified
34 ■■■■ changed files
server/conf/vhost.conf.master 4 ●●●● patch | view | raw | blame | history
server/plugins-available/apache2_plugin.inc.php 30 ●●●● patch | view | raw | blame | history
server/conf/vhost.conf.master
@@ -18,7 +18,7 @@
    ServerName <tmpl_var name='domain'>
<tmpl_if name='alias'>
    ServerAlias <tmpl_var name='alias'>
    <tmpl_var name='alias'>
</tmpl_if>
    ServerAdmin webmaster@<tmpl_var name='domain'>
@@ -160,7 +160,7 @@
    ServerName <tmpl_var name='domain'>
<tmpl_if name='alias'>
    ServerAlias <tmpl_var name='alias'>
    <tmpl_var name='alias'>
</tmpl_if>
    ServerAdmin webmaster@<tmpl_var name='domain'>
    
server/plugins-available/apache2_plugin.inc.php
@@ -527,25 +527,26 @@
        
        // get alias domains (co-domains and subdomains)
        $aliases = $app->db->queryAllRecords("SELECT * FROM web_domain WHERE parent_domain_id = ".$data["new"]["domain_id"]." AND active = 'y'");
        $server_alias = array();
        switch($data["new"]["subdomain"]) {
        case 'www':
            $server_alias .= 'www.'.$data["new"]["domain"].' ';
            $server_alias[] .= 'www.'.$data["new"]["domain"].' ';
            break;
        case '*':
            $server_alias .= '*.'.$data["new"]["domain"].' ';
            $server_alias[] .= '*.'.$data["new"]["domain"].' ';
            break;
        }
        if(is_array($aliases)) {
            foreach($aliases as $alias) {
                switch($alias["subdomain"]) {
                case 'www':
                    $server_alias .= 'www.'.$alias["domain"].' '.$alias["domain"].' ';
                    $server_alias[] .= 'www.'.$alias["domain"].' '.$alias["domain"].' ';
                    break;
                case '*':
                    $server_alias .= '*.'.$alias["domain"].' '.$alias["domain"].' ';
                    $server_alias[] .= '*.'.$alias["domain"].' '.$alias["domain"].' ';
                    break;
                default:
                    $server_alias .= $alias["domain"].' ';
                    $server_alias[] .= $alias["domain"].' ';
                    break;
                }
                $app->log("Add server alias: $alias[domain]",LOGLEVEL_DEBUG);
@@ -570,7 +571,24 @@
                }
            }
        }
        $tpl->setVar('alias',trim($server_alias));
        //* If we have some alias records
        if(count($server_alias) > 0) {
            $server_alias_str = '';
            $n = 0;
            // begin a new ServerAlias line after 30 alias domains
            foreach($server_alias as $tmp_alias) {
                if($n % 30 == 0) $server_alias_str .= "\n    ServerAlias ";
                $server_alias_str .= $tmp_alias;
            }
            unset($tmp_alias);
            $tpl->setVar('alias',trim($server_alias_str));
        } else {
            $tpl->setVar('alias','');
        }
        if(count($rewrite_rules) > 0) {
            $tpl->setVar('rewrite_enabled',1);
        } else {