diff --git a/src/ipc/process.cpp b/src/ipc/process.cpp index bdc541b654..33667883b7 100644 --- a/src/ipc/process.cpp +++ b/src/ipc/process.cpp @@ -55,9 +55,11 @@ public: // in combination with other arguments because the parent process // should be able to control the child process through the IPC protocol // without passing information out of band. - if (!ParseInt32(argv[2], &fd)) { + const auto maybe_fd{ToIntegral(argv[2])}; + if (!maybe_fd) { throw std::runtime_error(strprintf("Invalid -ipcfd number '%s'", argv[2])); } + fd = *maybe_fd; return true; } int connect(const fs::path& data_dir,