Skip to content

Commit 434666e

Browse files
committed
Fix PHP 8.3 warnings and deprecated messages in Jailkit code
1 parent 3d84997 commit 434666e

File tree

3 files changed

+56
-13
lines changed

3 files changed

+56
-13
lines changed

server/lib/classes/system.inc.php

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1883,22 +1883,33 @@ public function is_blacklisted_web_path($path) {
18831883
function web_folder_protection($document_root, $protect) {
18841884
global $app, $conf;
18851885

1886-
if($this->checkpath($document_root) == false) {
1886+
// Ensure $document_root is a string and not null
1887+
$document_root = is_string($document_root) ? trim($document_root) : '';
1888+
1889+
// Check if the path is valid
1890+
if ($this->checkpath($document_root) === false) {
18871891
$app->log("Action aborted, target is a symlink: $document_root", LOGLEVEL_DEBUG);
18881892
return false;
18891893
}
18901894

1891-
//* load the server configuration options
1895+
// Load the server configuration options
18921896
$app->uses('getconf');
18931897
$web_config = $app->getconf->get_server_config($conf['server_id'], 'web');
18941898

1895-
if($protect == true && $web_config['web_folder_protection'] == 'y') {
1896-
//* Add protection
1897-
if($document_root != '' && $document_root != '/' && strlen($document_root) > 6 && !stristr($document_root, '..')) $this->exec_safe('chattr +i ?', $document_root);
1899+
// Add or remove protection based on $protect and configuration
1900+
if ($protect === true && isset($web_config['web_folder_protection']) && $web_config['web_folder_protection'] === 'y') {
1901+
// Add protection
1902+
if ($document_root !== '' && $document_root !== '/' && strlen($document_root) > 6 && strpos($document_root, '..') === false) {
1903+
$this->exec_safe('chattr +i ?', $document_root);
1904+
}
18981905
} else {
1899-
//* Remove protection
1900-
if($document_root != '' && $document_root != '/' && strlen($document_root) > 6 && !stristr($document_root, '..')) $this->exec_safe('chattr -i ?', $document_root);
1906+
// Remove protection
1907+
if ($document_root !== '' && $document_root !== '/' && strlen($document_root) > 6 && strpos($document_root, '..') === false) {
1908+
$this->exec_safe('chattr -i ?', $document_root);
1909+
}
19011910
}
1911+
1912+
return true;
19021913
}
19031914

19041915
function usermod($username, $uid = 0, $gid = 0, $home = '', $shell = '', $password = '', $login = '') {

server/plugins-available/cron_jailkit_plugin.inc.php

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -278,9 +278,25 @@ function _setup_jailkit_chroot()
278278
$options = array('allow_hardlink');
279279
}
280280

281-
$last_updated = preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_sections']
282-
.' '.$this->jailkit_config['jailkit_chroot_app_programs']
283-
.' '.$this->jailkit_config['jailkit_chroot_cron_programs']);
281+
$sections = isset($this->jailkit_config['jailkit_chroot_app_sections'])
282+
? (is_array($this->jailkit_config['jailkit_chroot_app_sections'])
283+
? $this->jailkit_config['jailkit_chroot_app_sections']
284+
: preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_sections']))
285+
: [];
286+
287+
$programs = isset($this->jailkit_config['jailkit_chroot_app_programs'])
288+
? (is_array($this->jailkit_config['jailkit_chroot_app_programs'])
289+
? $this->jailkit_config['jailkit_chroot_app_programs']
290+
: preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_programs']))
291+
: [];
292+
293+
$cron_programs = isset($this->jailkit_config['jailkit_chroot_cron_programs'])
294+
? (is_array($this->jailkit_config['jailkit_chroot_cron_programs'])
295+
? $this->jailkit_config['jailkit_chroot_cron_programs']
296+
: preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_cron_programs']))
297+
: [];
298+
299+
$last_updated = array_merge($sections, $programs, $cron_programs);
284300
$last_updated = array_unique($last_updated, SORT_REGULAR);
285301
sort($last_updated, SORT_STRING);
286302
$update_hash = hash('md5', implode(' ', $last_updated));

server/plugins-available/shelluser_jailkit_plugin.inc.php

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -385,9 +385,25 @@ function _setup_jailkit_chroot()
385385
WHERE `domain_id` = ?", $this->data["new"]["parent_domain_id"]);
386386

387387

388-
$last_updated = preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_sections']
389-
.' '.$this->jailkit_config['jailkit_chroot_app_programs']
390-
.' '.$this->jailkit_config['jailkit_chroot_cron_programs']);
388+
$sections = isset($this->jailkit_config['jailkit_chroot_app_sections'])
389+
? (is_array($this->jailkit_config['jailkit_chroot_app_sections'])
390+
? $this->jailkit_config['jailkit_chroot_app_sections']
391+
: preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_sections']))
392+
: [];
393+
394+
$programs = isset($this->jailkit_config['jailkit_chroot_app_programs'])
395+
? (is_array($this->jailkit_config['jailkit_chroot_app_programs'])
396+
? $this->jailkit_config['jailkit_chroot_app_programs']
397+
: preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_app_programs']))
398+
: [];
399+
400+
$cron_programs = isset($this->jailkit_config['jailkit_chroot_cron_programs'])
401+
? (is_array($this->jailkit_config['jailkit_chroot_cron_programs'])
402+
? $this->jailkit_config['jailkit_chroot_cron_programs']
403+
: preg_split('/[\s,]+/', $this->jailkit_config['jailkit_chroot_cron_programs']))
404+
: [];
405+
406+
$last_updated = array_merge($sections, $programs, $cron_programs);
391407
$last_updated = array_unique($last_updated, SORT_REGULAR);
392408
sort($last_updated, SORT_STRING);
393409
$update_hash = hash('md5', implode(' ', $last_updated));

0 commit comments

Comments
 (0)