diff options
author | rubenwardy <rw@rubenwardy.com> | 2022-08-15 08:30:46 +0100 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2022-08-15 21:19:24 +0100 |
commit | 0090446ccfc9a2d29f2d3b172415c757700fe706 (patch) | |
tree | f9a65484c4424a1f2d7bd24714ef728befca5031 | |
parent | cae7ec1eb4c5fb56a9f4666a16d5937ac1e4c527 (diff) | |
download | minetest-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.lua | 6 |
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) |