From 2f2df474158b6c24325a47334fc8b5eb77a69b85 Mon Sep 17 00:00:00 2001 From: Domagoj Pensa Date: Tue, 15 Dec 2020 18:16:00 +0100 Subject: [PATCH] Fix too early argv freeing when registering DNS When registering DNS on Windows, argv is freed after being used in first ipconfig command (/flushdns). Then same argv is used uninitialized in next ipconfig command (/registerdns) causing heap exception and subprocess crash. As a consequence second command is never executed and locked netcmd semaphore is not cleanly released. Removing argv freeing between ipconfig calls solves the problem. This issue was introduced in commit 870e240 (argv: do fewer memory re-allocations). After a quick glance at commit no similar problem was spotted in rest of the argv related changes. Signed-off-by: Domagoj Pensa Acked-by: Gert Doering Message-Id: <20201215171600.25534-1-domagoj@pensa.hr> URL: https://www.mail-archive.com/search?l=mid&q=20201215171600.25534-1-domagoj@pensa.hr Signed-off-by: Gert Doering (cherry picked from commit ab4688e3bd78d010ccc96adec66ab552bd009328) --- src/openvpn/tun.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/openvpn/tun.c b/src/openvpn/tun.c index 8315a4264..eff4bd099 100644 --- a/src/openvpn/tun.c +++ b/src/openvpn/tun.c @@ -5240,7 +5240,6 @@ ipconfig_register_dns(const struct env_set *es) WIN_IPCONFIG_PATH_SUFFIX); argv_msg(D_TUNTAP_INFO, &argv); openvpn_execve_check(&argv, es, 0, err); - argv_free(&argv); argv_printf(&argv, "%s%s /registerdns", get_win_sys_path(), -- 2.47.2