From 5decf4ab3da7484f8418d648688fbe4250ea7fdd Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Mon, 18 Jun 2018 19:35:42 +0200 Subject: [PATCH] [FIX] web: clean data_file after restore The file used for the restoration was not properly removed --- addons/web/controllers/main.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index bcbc8e13cc3..1ee45befe00 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -744,6 +744,8 @@ class Database(http.Controller): @http.route('/web/database/restore', type='http', auth="none", methods=['POST'], csrf=False) def restore(self, master_pwd, backup_file, name, copy=False): try: + data_file = None + db.check_super(master_pwd) with tempfile.NamedTemporaryFile(delete=False) as data_file: backup_file.save(data_file) db.restore_db(name, data_file.name, str2bool(copy)) @@ -752,7 +754,8 @@ class Database(http.Controller): error = "Database restore error: %s" % (str(e) or repr(e)) return self._render_template(error=error) finally: - os.unlink(data_file.name) + if data_file: + os.unlink(data_file.name) @http.route('/web/database/change_password', type='http', auth="none", methods=['POST'], csrf=False) def change_password(self, master_pwd, master_pwd_new):