From e56b7ded15b7cdaafc0bdb3c41961057eff44b97 Mon Sep 17 00:00:00 2001 From: jackun Date: Sun, 16 Aug 2020 19:53:20 +0300 Subject: [PATCH] Use `setenv`instead as `putenv` makes Lutris' wine crash for some reason (threading?) --- src/overlay.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/overlay.cpp b/src/overlay.cpp index 2d2fec7f..b36ad683 100644 --- a/src/overlay.cpp +++ b/src/overlay.cpp @@ -727,18 +727,13 @@ void init_system_info(){ char *dir = dirname((char*)wineProcess.c_str()); stringstream findVersion; findVersion << "\"" << dir << "/wine\" --version"; - bool env_exists = false; - if (getenv("WINELOADERNOEXEC")) { - static char removenoexec[] = "WINELOADERNOEXEC"; - putenv(removenoexec); - env_exists = true; - } + const char *wine_env = getenv("WINELOADERNOEXEC"); + if (wine_env) + unsetenv("WINELOADERNOEXEC"); wineVersion = exec(findVersion.str()); std::cout << "WINE VERSION = " << wineVersion << "\n"; - if (env_exists) { - static char noexec[] = "WINELOADERNOEXEC=1"; - putenv(noexec); - } + if (wine_env) + setenv("WINELOADERNOEXEC", wine_env, 1); } } else {