mcramer
2013-03-04 61e8f476fd2e2c6dca5458ccae8368f349814b37
- Fixed: maildeliver plugin could cause the server process to crash and leave a stale lock file

1 files modified
13 ■■■■ changed files
server/plugins-available/maildeliver_plugin.inc.php 13 ●●●● patch | view | raw | blame | history
server/plugins-available/maildeliver_plugin.inc.php
@@ -167,20 +167,29 @@
                }
            }
            
            $app->log("Found " . count($addresses) . " addresses.",LOGLEVEL_DEBUG);
            $alias_addresses = array();
            $email_parts = explode('@',$data["new"]["email"]);
            $sql = "SELECT * FROM mail_forwarding WHERE type = 'aliasdomain' AND destination = '@".$app->db->quote($email_parts[1])."'";
            $records = $app->db->queryAllRecords($sql);
            if(is_array($records) && count($records) > 0) {
                $app->log("Found " . count($records) . " records (aliasdomains).",LOGLEVEL_DEBUG);
                foreach($records as $rec) {
                    $aliasdomain = substr($rec['source'],1);
                    foreach($addresses as $email) {
                        $email_parts = explode('@',$email);
                        $addresses[] = $email_parts[0].'@'.$aliasdomain;
                        $alias_addresses[] = $email_parts[0].'@'.$aliasdomain;
                    }
                }
            }
            
            $addresses = array_unique($addresses);
            $app->log("Found " . count($addresses) . " addresses at all.",LOGLEVEL_DEBUG);
            $addresses = array_unique(array_merge($addresses, $alias_addresses));
            $app->log("Found " . count($addresses) . " unique addresses at all.",LOGLEVEL_DEBUG);
            
            $address_str = '';
            if(is_array($addresses) && count($addresses) > 0) {