From ea5eee59af75b1e26d7ab287b18afed6d557dc56 Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Mon, 3 Nov 2014 15:14:37 +0100
Subject: [PATCH] backup: change mounts to backup_dir_mount_cmd

---
 server/lib/classes/cron.d/500-backup.inc.php      | 12 ++++++++----
 server/lib/classes/cron.d/500-backup_mail.inc.php |  9 ++++++---
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/server/lib/classes/cron.d/500-backup.inc.php b/server/lib/classes/cron.d/500-backup.inc.php
index abca144f40..537c5880b6 100644
--- a/server/lib/classes/cron.d/500-backup.inc.php
+++ b/server/lib/classes/cron.d/500-backup.inc.php
@@ -74,10 +74,14 @@ class cronjob_backup extends cronjob {
 			
 			//* mount backup directory, if necessary
 			$run_backups = true;
-			$server_config['backup_dir_mount_cmd'] = trim($server_config['backup_dir_mount_cmd']);
-			if($server_config['backup_dir_is_mount'] == 'y' && $server_config['backup_dir_mount_cmd'] != ''){
-				if(!$app->system->is_mounted($backup_dir)){
-					exec(escapeshellcmd($server_config['backup_dir_mount_cmd']));
+			$backup_dir_mount_cmd = '/usr/local/ispconfig/server/scripts/backup_dir_mount.sh';
+			if( $server_config['backup_dir_is_mount'] == 'y' &&
+				is_file($backup_dir_mount_cmd) &&
+				is_executable($backup_dir_mount_cmd) &&
+				fileowner($backup_dir_mount_cmd) === 0
+			){
+			if(!$app->system->is_mounted($backup_dir)){
+					exec($backup_dir_mount_cmd);
 					sleep(1);
 					if(!$app->system->is_mounted($backup_dir)) $run_backups = false;
 				}
diff --git a/server/lib/classes/cron.d/500-backup_mail.inc.php b/server/lib/classes/cron.d/500-backup_mail.inc.php
index ae85db2b94..09223cc52a 100644
--- a/server/lib/classes/cron.d/500-backup_mail.inc.php
+++ b/server/lib/classes/cron.d/500-backup_mail.inc.php
@@ -61,10 +61,13 @@ class cronjob_backup_mail extends cronjob {
 		if($backup_dir != '') {
 			//* mount backup directory, if necessary
 			$run_backups = true;
-			$server_config['backup_dir_mount_cmd'] = trim($server_config['backup_dir_mount_cmd']);
-			if($server_config['backup_dir_is_mount'] == 'y' && $server_config['backup_dir_mount_cmd'] != ''){
+			if( $server_config['backup_dir_is_mount'] == 'y' &&
+				is_file($backup_dir_mount_cmd) &&
+				is_executable($backup_dir_mount_cmd) &&
+				fileowner($backup_dir_mount_cmd) === 0
+			){
 				if(!$app->system->is_mounted($backup_dir)){
-					exec(escapeshellcmd($server_config['backup_dir_mount_cmd']));
+					exec($backup_dir_mount_cmd);
 					sleep(1);
 					if(!$app->system->is_mounted($backup_dir)) $run_backups = false;
 				}
-- 
GitLab