X-Git-Url: http://www.dolda2000.com/gitweb/?a=blobdiff_plain;f=lib%2Fproc.c;fp=lib%2Fproc.c;h=efd276731b32cd9d2381d57e37cb25b4287f004b;hb=820f91371d71ceeef86ecb141c86763065397e85;hp=f7b0d9b454d741b3c88d089576ea6dbc6f2586b9;hpb=b16800fa75472cc48f821a869fae1337a8de7355;p=ashd.git diff --git a/lib/proc.c b/lib/proc.c index f7b0d9b..efd2767 100644 --- a/lib/proc.c +++ b/lib/proc.c @@ -35,7 +35,7 @@ int stdmkchild(char **argv) pid_t pid; int fd[2]; - if(socketpair(PF_UNIX, SOCK_DGRAM, 0, fd)) + if(socketpair(PF_UNIX, SOCK_SEQPACKET, 0, fd)) return(-1); if((pid = fork()) < 0) return(-1); @@ -98,8 +98,10 @@ int recvfd(int sock, char **data, size_t *datalen) msg.msg_controllen = sizeof(cbuf); ret = recvmsg(sock, &msg, 0); - if(ret < 0) { + if(ret <= 0) { free(buf); + if(ret == 0) + errno = 0; return(-1); }