@@ -119,8 +119,12 @@ function check_system($data) {
119119 }
120120 /* dir for dkim-keys writeable? */
121121 $ mail_config = $ app ->getconf ->get_server_config ($ conf ['server_id ' ], 'mail ' );
122- if (isset ($ mail_config ['dkim_path ' ]) && (!empty ($ mail_config ['dkim_path ' ])) && isset ($ data ['new ' ]['dkim_private ' ]) && !empty ($ data ['new ' ]['dkim_private ' ])) {
123-
122+ if ( isset ($ mail_config ['dkim_path ' ]) &&
123+ !empty ($ mail_config ['dkim_path ' ]) &&
124+ isset ($ data ['new ' ]['dkim_private ' ]) &&
125+ !empty ($ data ['new ' ]['dkim_private ' ]) &&
126+ $ mail_config ['dkim_path ' ] != '/ '
127+ ) {
124128 if (!is_dir ($ mail_config ['dkim_path ' ])) {
125129 $ app ->log ('DKIM Path ' .$ mail_config ['dkim_path ' ].' not found - (re)created. ' , LOGLEVEL_DEBUG );
126130 if ($ app ->system ->is_user ('amavis ' )) {
@@ -133,10 +137,12 @@ function check_system($data) {
133137 }
134138 if (!empty ($ amavis_user )) {
135139 mkdir ($ mail_config ['dkim_path ' ], 0750 , true );
136- exec ('chown ' .$ amavis_user .' /var/lib/amavis/dkim ' );
140+ exec ('chown ' .$ amavis_user .' ' . escapeshellarg ( $ mail_config [ ' dkim_path ' ]) );
137141 unset($ amavis_user );
138142 } else {
139143 mkdir ($ mail_config ['dkim_path ' ], 0755 , true );
144+ $ app ->log ('No user amavis or vscan found - using root for ' .$ mail_config ['dkim_path ' ]
145+ , LOGLEVEL_WARNING );
140146 }
141147 }
142148
@@ -194,6 +200,8 @@ function write_dkim_key($key_file, $key_value, $key_domain) {
194200 if (!file_put_contents ($ key_file .'.public ' , $ public_key ) === false )
195201 $ app ->log ('Saved DKIM Public to ' .$ key_domain .'. ' , LOGLEVEL_DEBUG );
196202 else $ app ->log ('Unable to save DKIM Public to ' .$ key_domain .'. ' , LOGLEVEL_DEBUG );
203+ } else {
204+ $ app ->log ('Unable to save DKIM Privte-key to ' .$ key_file .'.private ' , LOGLEVEL_ERROR );
197205 }
198206 return $ success ;
199207 }
0 commit comments