aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2016-01-05 09:33:05 -0200
committerRenato Botelho <renato@netgate.com>2016-01-05 09:33:05 -0200
commita8286f5251063b3e3d6e6c359e8e1cbdee4f0aea (patch)
treef3d1247ae8a2dacec532d1e0a976e32707bd9178 /config
parent310862495a0cc7646a7c0238a77a181110cb7d95 (diff)
parent82e6d1b388dd670346ff732423f71132d554c383 (diff)
downloadpfsense-packages-a8286f5251063b3e3d6e6c359e8e1cbdee4f0aea.tar.gz
pfsense-packages-a8286f5251063b3e3d6e6c359e8e1cbdee4f0aea.tar.bz2
pfsense-packages-a8286f5251063b3e3d6e6c359e8e1cbdee4f0aea.zip
Merge pull request #1228 from phil-davis/tftpfix
Diffstat (limited to 'config')
-rw-r--r--config/tftp2/tftp.inc17
-rw-r--r--config/tftp2/tftp.xml2
-rw-r--r--config/tftp2/tftp_files.php12
3 files changed, 26 insertions, 5 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();
}