From 8c66250574a7ce7c0d8c38cc83437d814356d781 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Mon, 29 Jan 2007 02:04:51 +0000 Subject: sync some fixes from glibc --- libc/inet/rpc/rexec.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'libc/inet/rpc/rexec.c') diff --git a/libc/inet/rpc/rexec.c b/libc/inet/rpc/rexec.c index bbbaac645..e1cd45af8 100644 --- a/libc/inet/rpc/rexec.c +++ b/libc/inet/rpc/rexec.c @@ -87,7 +87,7 @@ rexec_af(char **ahost, int rport, const char *name, const char *pass, const char snprintf(servbuff, sizeof(servbuff), "%d", ntohs(rport)); servbuff[sizeof(servbuff) - 1] = '\0'; - memset(&hints, 0, sizeof(hints)); + memset(&hints, '\0', sizeof(hints)); hints.ai_family = af; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_CANONNAME; @@ -104,6 +104,8 @@ rexec_af(char **ahost, int rport, const char *name, const char *pass, const char } else{ *ahost = NULL; + __set_errno (ENOENT); + return -1; } ruserpass(res0->ai_canonname, &name, &pass); retry: @@ -127,7 +129,8 @@ retry: port = 0; } else { char num[32]; - int s2, sa2len; + int s2; + socklen_t sa2len; s2 = socket(res0->ai_family, res0->ai_socktype, 0); if (s2 < 0) { @@ -153,7 +156,8 @@ retry: (void) sprintf(num, "%u", port); (void) write(s, num, strlen(num)+1); { socklen_t len = sizeof (from); - s3 = accept(s2, (struct sockaddr *)&from, &len); + s3 = TEMP_FAILURE_RETRY (accept(s2, (struct sockaddr *)&from, + &len)); close(s2); if (s3 < 0) { perror("accept"); -- cgit v1.2.3