aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2022-08-15 08:30:46 +0100
committerrubenwardy <rw@rubenwardy.com>2022-08-15 21:19:24 +0100
commit0090446ccfc9a2d29f2d3b172415c757700fe706 (patch)
treef9a65484c4424a1f2d7bd24714ef728befca5031
parentcae7ec1eb4c5fb56a9f4666a16d5937ac1e4c527 (diff)
downloadminetest-0090446ccfc9a2d29f2d3b172415c757700fe706.tar.xz
Fix crash when trying to overwrite a package
Before #11646, core.copy_dir would overwrite the target if it exists. Adding core.delete_dir restores the exact same behaviour Fixes #12303
-rw-r--r--builtin/mainmenu/pkgmgr.lua6
1 files changed, 3 insertions, 3 deletions
diff --git a/builtin/mainmenu/pkgmgr.lua b/builtin/mainmenu/pkgmgr.lua
index 32a65fd08..853509b4f 100644
--- a/builtin/mainmenu/pkgmgr.lua
+++ b/builtin/mainmenu/pkgmgr.lua
@@ -608,11 +608,10 @@ function pkgmgr.install_dir(type, path, basename, targetpath)
end
local from = basefolder and basefolder.path or path
- if targetpath then
- core.delete_dir(targetpath)
- else
+ if not targetpath then
targetpath = core.get_texturepath() .. DIR_DELIM .. basename
end
+ core.delete_dir(targetpath)
if not core.copy_dir(from, targetpath, false) then
return nil,
fgettext("Failed to install $1 to $2", basename, targetpath)
@@ -690,6 +689,7 @@ function pkgmgr.install_dir(type, path, basename, targetpath)
end
-- Copy it
+ core.delete_dir(targetpath)
if not core.copy_dir(basefolder.path, targetpath, false) then
return nil,
fgettext("Failed to install $1 to $2", basename, targetpath)