aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--butl/process3
-rw-r--r--butl/process.cxx2
2 files changed, 3 insertions, 2 deletions
diff --git a/butl/process b/butl/process
index bb77684..bbd0162 100644
--- a/butl/process
+++ b/butl/process
@@ -60,7 +60,8 @@ namespace butl
process (char const* const args[], process& in, int out = 1, int err = 2);
// Versions of the above constructors that allow us to change the
- // current working directory of the child process.
+ // current working directory of the child process. NULL and empty
+ // cwd arguments are ignored.
//
process (const char* cwd, char const* const[], int = 0, int = 1, int = 2);
process (const char* cwd, char const* const[], process&, int = 1, int = 2);
diff --git a/butl/process.cxx b/butl/process.cxx
index 3556fd9..66a831e 100644
--- a/butl/process.cxx
+++ b/butl/process.cxx
@@ -76,7 +76,7 @@ namespace butl
// Change current working directory if requested.
//
- if (cwd != nullptr && chdir (cwd) != 0)
+ if (cwd != nullptr && *cwd != '\0' && chdir (cwd) != 0)
throw process_error (errno, true);
if (execvp (args[0], const_cast<char**> (&args[0])) == -1)