libutil: cleanup savedCwd logic

Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
This commit is contained in:
Cole Helbling 2022-04-04 08:19:49 -07:00
parent 2a45cf54e4
commit e5b70d47aa

View File

@ -1698,20 +1698,7 @@ void saveMountNamespace()
#if __linux__
static std::once_flag done;
std::call_once(done, []() {
#ifdef __GNU__
// getcwd allocating its return value is a GNU extension.
char *cwd = getcwd(NULL, 0);
if (cwd == NULL)
#else
char cwd[PATH_MAX];
if (!getcwd(cwd, sizeof(cwd)))
#endif
throw SysError("getting cwd");
savedCwd.emplace(cwd);
#ifdef __GNU__
free(cwd);
#endif
savedCwd = absPath(".");
AutoCloseFD fd = open("/proc/self/ns/mnt", O_RDONLY);
if (!fd)
throw SysError("saving parent mount namespace");