but the variable gcc complain *is* child_pipe_ptr, i.e. it complains the caller's child_pipe. we just doesn't initialize child_pipe_ptr if a error occurs.
so, add a child_pipe_ptr assignment on failure path?