summaryrefslogtreecommitdiff
path: root/src/libstddjb/child_spawn1_internal.c
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2017-07-16 11:19:51 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2017-07-16 11:19:51 +0000
commit16013c560e189bd0c4fb58e038c0f449542dba7a (patch)
treeb9d2777f2e5a8108b684839f04310ffd0de82179 /src/libstddjb/child_spawn1_internal.c
parent538fd727337959b1d7b8449a578a31fd9a9c62b4 (diff)
downloadskalibs-16013c560e189bd0c4fb58e038c0f449542dba7a.tar.xz
Add egidingroups sysdeps, change fd_close() to void and saving errno, propagate changes
Diffstat (limited to 'src/libstddjb/child_spawn1_internal.c')
-rw-r--r--src/libstddjb/child_spawn1_internal.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/src/libstddjb/child_spawn1_internal.c b/src/libstddjb/child_spawn1_internal.c
index feddbc8..eea4f09 100644
--- a/src/libstddjb/child_spawn1_internal.c
+++ b/src/libstddjb/child_spawn1_internal.c
@@ -77,21 +77,17 @@ pid_t child_spawn1_internal (char const *prog, char const *const *argv, char con
pid_t pid ;
if (coe(p[0]) < 0 || pipecoe(syncp) < 0)
{
- e = errno ;
fd_close(p[1]) ;
fd_close(p[0]) ;
- errno = e ;
return 0 ;
}
pid = fork() ;
if (pid < 0)
{
- e = errno ;
fd_close(syncp[1]) ;
fd_close(syncp[0]) ;
fd_close(p[1]) ;
fd_close(p[0]) ;
- errno = e ;
return 0 ;
}
if (!pid)
@@ -117,10 +113,8 @@ err:
syncp[1] = fd_read(syncp[0], (char *)&e, sizeof(e)) ;
if (syncp[1] < 0)
{
- e = errno ;
fd_close(syncp[0]) ;
fd_close(p[!(to & 1)]) ;
- errno = e ;
return 0 ;
}
fd_close(syncp[0]) ;