aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/lib_rss.php8
-rw-r--r--p/ext.php5
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/lib_rss.php b/lib/lib_rss.php
index fac7af60e..e1618a2ef 100644
--- a/lib/lib_rss.php
+++ b/lib/lib_rss.php
@@ -922,6 +922,14 @@ function recursive_unlink(string $dir): bool {
return true;
}
+ if (is_link($dir)) {
+ if (PHP_OS_FAMILY === "Windows") {
+ return rmdir($dir);
+ }
+
+ return unlink($dir);
+ }
+
$files = array_diff(scandir($dir) ?: [], ['.', '..']);
foreach ($files as $filename) {
$filename = $dir . '/' . $filename;
diff --git a/p/ext.php b/p/ext.php
index 98684e45e..f470b7210 100644
--- a/p/ext.php
+++ b/p/ext.php
@@ -11,6 +11,11 @@ function get_absolute_filename(string $file_name): string {
$third_party_extension = realpath(THIRDPARTY_EXTENSIONS_PATH . '/' . $file_name);
if (false !== $third_party_extension) {
+ $original_dir = THIRDPARTY_EXTENSIONS_PATH . '/' . explode('/', $file_name)[0];
+ if (is_link($original_dir)) {
+ return THIRDPARTY_EXTENSIONS_PATH . '/' . $file_name;
+ }
+
return $third_party_extension;
}