aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/tftp2/tftp.inc17
-rw-r--r--config/tftp2/tftp.xml2
-rw-r--r--config/tftp2/tftp_files.php12
-rw-r--r--pkg_config.10.xml2
-rw-r--r--pkg_config.8.xml2
-rw-r--r--pkg_config.8.xml.amd642
6 files changed, 29 insertions, 8 deletions
diff --git a/config/tftp2/tftp.inc b/config/tftp2/tftp.inc
index baf753c9..7ad4ab1b 100644
--- a/config/tftp2/tftp.inc
+++ b/config/tftp2/tftp.inc
@@ -41,6 +41,19 @@ function tftp_byte_convert($bytes) {
return round($bytes/pow($convention, $e), 2) . ' ' . $s[$e];
}
+function tftp_dir_contains_files($dir) {
+ if (!is_readable($dir)) {
+ return NULL;
+ }
+ $handle = opendir($dir);
+ while (false !== ($entry = readdir($handle))) {
+ if ($entry != "." && $entry != "..") {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
function tftp_install_command() {
global $config;
@@ -54,7 +67,9 @@ function tftp_install_command() {
// Restore backup if it exists
if (file_exists($tftpbackup)) {
mwexec("/usr/bin/tar xvpfz {$tftpbackup} -C /");
- mwexec("/bin/chmod -R 0744 {$tftpdir}/*");
+ if (tftp_dir_contains_files($tftpdir)) {
+ mwexec("/bin/chmod -R 0744 {$tftpdir}/*");
+ }
}
unset($tftpdir, $tftpbackup);
}
diff --git a/config/tftp2/tftp.xml b/config/tftp2/tftp.xml
index 350999dd..7e5b9746 100644
--- a/config/tftp2/tftp.xml
+++ b/config/tftp2/tftp.xml
@@ -43,7 +43,7 @@
]]>
</copyright>
<name>tftpsettings</name>
- <version>2.2.4</version>
+ <version>2.2.5</version>
<title>TFTP: Settings</title>
<include_file>/usr/local/pkg/tftp.inc</include_file>
<menu>
diff --git a/config/tftp2/tftp_files.php b/config/tftp2/tftp_files.php
index 0cc08233..cc2947bc 100644
--- a/config/tftp2/tftp_files.php
+++ b/config/tftp2/tftp_files.php
@@ -76,7 +76,9 @@ if ($_GET['a'] == "other") {
//echo "The file $filename exists";
conf_mount_rw();
mwexec("/usr/bin/tar -xpzC / -f {$backup_path}");
- mwexec("/bin/chmod -R 744 {$files_dir}/*");
+ if (tftp_dir_contains_files($files_dir)) {
+ mwexec("/bin/chmod -R 744 {$files_dir}/*");
+ }
header( 'Location: tftp_files.php?savemsg=Backup+has+been+restored.' ) ;
conf_mount_ro();
} else {
@@ -92,7 +94,9 @@ if ($_POST['submit'] == "Save") {
write_config();
send_event("filter reload");
} else {
- unset($config['installedpackages']['tftpd']['config'][0]['tftpdinterface']);
+ if (isset($config['installedpackages']['tftpd']['config'][0]['tftpdinterface'])) {
+ unset($config['installedpackages']['tftpd']['config'][0]['tftpdinterface']);
+ }
write_config();
send_event("filter reload");
}
@@ -102,7 +106,9 @@ if (($_POST['submit'] == "Upload") && is_uploaded_file($_FILES['ulfile']['tmp_na
conf_mount_rw();
move_uploaded_file($_FILES['ulfile']['tmp_name'], "{$files_dir}/{$_FILES['ulfile']['name']}");
$savemsg = "Uploaded file to {$files_dir}/" . htmlentities($_FILES['ulfile']['name']);
- mwexec('/bin/chmod -R 744 {$files_dir}/*');
+ if (tftp_dir_contains_files($files_dir)) {
+ mwexec('/bin/chmod -R 744 {$files_dir}/*');
+ }
unset($_POST['txtCommand']);
conf_mount_ro();
}
diff --git a/pkg_config.10.xml b/pkg_config.10.xml
index 980a529d..c49c0233 100644
--- a/pkg_config.10.xml
+++ b/pkg_config.10.xml
@@ -337,7 +337,7 @@
<pkginfolink/>
<port_category>ftp</port_category>
<config_file>https://packages.pfsense.org/packages/config/tftp2/tftp.xml</config_file>
- <version>2.2.4</version>
+ <version>2.2.5</version>
<status>RELEASE</status>
<required_version>2.2</required_version>
<configurationfile>tftp.xml</configurationfile>
diff --git a/pkg_config.8.xml b/pkg_config.8.xml
index 398d172b..f3cc21d8 100644
--- a/pkg_config.8.xml
+++ b/pkg_config.8.xml
@@ -383,7 +383,7 @@
<pkginfolink/>
<config_file>https://packages.pfsense.org/packages/config/tftp2/tftp.xml</config_file>
<depends_on_package_base_url>https://files.pfsense.org/packages/8/All/</depends_on_package_base_url>
- <version>2.2.4</version>
+ <version>2.2.5</version>
<status>Stable</status>
<required_version>2.0</required_version>
<configurationfile>tftp.xml</configurationfile>
diff --git a/pkg_config.8.xml.amd64 b/pkg_config.8.xml.amd64
index 80d9d879..e3b1347c 100644
--- a/pkg_config.8.xml.amd64
+++ b/pkg_config.8.xml.amd64
@@ -383,7 +383,7 @@
<pkginfolink/>
<config_file>https://packages.pfsense.org/packages/config/tftp2/tftp.xml</config_file>
<depends_on_package_base_url>https://files.pfsense.org/packages/amd64/8/All/</depends_on_package_base_url>
- <version>2.2.4</version>
+ <version>2.2.5</version>
<status>Stable</status>
<required_version>2.0</required_version>
<configurationfile>tftp.xml</configurationfile>