arun11299 / cpp-subprocess

Subprocessing with modern C++
Other
456 stars 90 forks source link

execute_child shouldn't use any signal-unsafe functions #53

Open yasushi-saito opened 4 years ago

yasushi-saito commented 4 years ago

I see the uses of std::string and setenv after fork. I believe these functions are unsafe, because after fork, the state of memory heap is undefined. I haven't been able to produce crash myself so this issue isn't super critical, but it'd be good to fix them.

For setenv, perhaps we should create a new environ before fork in the parent. For std::string, we can just write a raw string using write(2) and call _exit.