Hi, > + rc = readFD(stdout_pipe[0], &buffer); > + if (rc > 0) { > + rstrip(buffer); > + logProgramMessage(INFO, buffer); > + free(buffer); > + buffer = NULL; > } > + rc = readFD(stderr_pipe[0], &buffer); > + if (rc > 0) { > + rstrip(buffer); > + logProgramMessage(ERROR, buffer); > + if (err != NULL) > + *err = buffer; > + else > + free(buffer); > + } > + close(stdout_pipe[0]); > + close(stderr_pipe[0]); > > - close(pipefd[0]); > waitpid(child, &status, 0); Are you sure this is safe? What about the case when stderr gets filled by enough data to fill the kernel buffer for that pipe while you are waiting for stdout? In my experience the calling program then block until you read some data from the pipe.. but you are waiting for stdout so I think you could end up in deadlock here. Martin _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list