git.annexia.org
/
libguestfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
New API: inspect-get-windows-current-control-set
[libguestfs.git]
/
daemon
/
guestfsd.c
diff --git
a/daemon/guestfsd.c
b/daemon/guestfsd.c
index
1af0f7a
..
ac8750c
100644
(file)
--- a/
daemon/guestfsd.c
+++ b/
daemon/guestfsd.c
@@
-679,6
+679,8
@@
commandrvf (char **stdoutput, char **stderror, int flags,
}
if (pid == 0) { /* Child process running the command. */
}
if (pid == 0) { /* Child process running the command. */
+ signal (SIGALRM, SIG_DFL);
+ signal (SIGPIPE, SIG_DFL);
close (0);
if (flag_copy_stdin) {
dup2 (stdin_fd[0], 0);
close (0);
if (flag_copy_stdin) {
dup2 (stdin_fd[0], 0);
@@
-767,9
+769,13
@@
commandrvf (char **stdoutput, char **stderror, int flags,
quit = 0;
while (quit < 2) {
quit = 0;
while (quit < 2) {
+ again:
rset2 = rset;
r = select (MAX (so_fd[0], se_fd[0]) + 1, &rset2, NULL, NULL, NULL);
if (r == -1) {
rset2 = rset;
r = select (MAX (so_fd[0], se_fd[0]) + 1, &rset2, NULL, NULL, NULL);
if (r == -1) {
+ if (errno == EINTR)
+ goto again;
+
perror ("select");
quit:
if (stdoutput) free (*stdoutput);
perror ("select");
quit:
if (stdoutput) free (*stdoutput);