summaryrefslogtreecommitdiff
path: root/inet/rcmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'inet/rcmd.c')
-rw-r--r--inet/rcmd.c33
1 files changed, 16 insertions, 17 deletions
diff --git a/inet/rcmd.c b/inet/rcmd.c
index ace6b14a93..8a9616f847 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -55,10 +55,6 @@
* SUCH DAMAGE.
*/
-#if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)rcmd.c 8.3 (Berkeley) 3/26/94";
-#endif /* LIBC_SCCS and not lint */
-
#include <sys/param.h>
#include <sys/poll.h>
#include <sys/socket.h>
@@ -82,9 +78,10 @@ static char sccsid[] = "@(#)rcmd.c 8.3 (Berkeley) 3/26/94";
#include <stdlib.h>
#include <wchar.h>
#include <sys/uio.h>
+#include <sigsetops.h>
-int __ivaliduser (FILE *, u_int32_t, const char *, const char *);
+int __ivaliduser (FILE *, uint32_t, const char *, const char *);
static int __validuser2_sa (FILE *, struct sockaddr *, size_t,
const char *, const char *, const char *);
static int ruserok2_sa (struct sockaddr *ra, size_t ralen,
@@ -95,7 +92,7 @@ static int ruserok_sa (struct sockaddr *ra, size_t ralen,
const char *luser);
int iruserok_af (const void *raddr, int superuser, const char *ruser,
const char *luser, sa_family_t af);
-int iruserok (u_int32_t raddr, int superuser, const char *ruser,
+int iruserok (uint32_t raddr, int superuser, const char *ruser,
const char *luser);
libc_hidden_proto (iruserok_af)
@@ -116,7 +113,8 @@ rcmd_af (char **ahost, u_short rport, const char *locuser, const char *remuser,
struct sockaddr_in6 sin6;
} from;
struct pollfd pfd[2];
- int32_t oldmask;
+ sigset_t mask, omask;
+
pid_t pid;
int s, lport, timo, error;
char c;
@@ -153,7 +151,7 @@ rcmd_af (char **ahost, u_short rport, const char *locuser, const char *remuser,
if (res->ai_canonname){
free (ahostbuf);
- ahostbuf = strdup (res->ai_canonname);
+ ahostbuf = __strdup (res->ai_canonname);
if (ahostbuf == NULL) {
__fxprintf(NULL, "%s",
_("rcmd: Cannot allocate memory\n"));
@@ -164,7 +162,9 @@ rcmd_af (char **ahost, u_short rport, const char *locuser, const char *remuser,
*ahost = NULL;
ai = res;
refused = 0;
- oldmask = __sigblock(sigmask(SIGURG));
+ __sigemptyset(&mask);
+ __sigaddset(&mask, SIGURG);
+ __sigprocmask (SIG_BLOCK, &mask, &omask);
for (timo = 1, lport = IPPORT_RESERVED - 1;;) {
char errbuf[200];
@@ -176,7 +176,7 @@ rcmd: socket: All ports in use\n"));
else
__fxprintf(NULL, "rcmd: socket: %m\n");
- __sigsetmask(oldmask);
+ __sigprocmask (SIG_SETMASK, &omask, 0);
freeaddrinfo(res);
return -1;
}
@@ -229,7 +229,7 @@ rcmd: socket: All ports in use\n"));
freeaddrinfo(res);
(void)__fxprintf(NULL, "%s: %s\n", *ahost,
__strerror_r(errno, errbuf, sizeof (errbuf)));
- __sigsetmask(oldmask);
+ __sigprocmask (SIG_SETMASK, &omask, 0);
return -1;
}
lport--;
@@ -341,7 +341,7 @@ socket: protocol failure in circuit setup\n")) >= 0)
}
goto bad2;
}
- __sigsetmask(oldmask);
+ __sigprocmask (SIG_SETMASK, &omask, 0);
freeaddrinfo(res);
return s;
bad2:
@@ -349,7 +349,7 @@ bad2:
(void)__close(*fd2p);
bad:
(void)__close(s);
- __sigsetmask(oldmask);
+ __sigprocmask (SIG_SETMASK, &omask, 0);
freeaddrinfo(res);
return -1;
}
@@ -387,6 +387,7 @@ rresvport_af (int *alport, sa_family_t family)
__set_errno (EAFNOSUPPORT);
return -1;
}
+ /* NB: No SOCK_CLOEXEC for backwards compatibility. */
s = __socket(family, SOCK_STREAM, 0);
if (s < 0)
return -1;
@@ -614,7 +615,7 @@ iruserok_af (const void *raddr, int superuser, const char *ruser,
libc_hidden_def (iruserok_af)
int
-iruserok (u_int32_t raddr, int superuser, const char *ruser, const char *luser)
+iruserok (uint32_t raddr, int superuser, const char *ruser, const char *luser)
{
return iruserok_af (&raddr, superuser, ruser, luser, AF_INET);
}
@@ -631,7 +632,7 @@ iruserok (u_int32_t raddr, int superuser, const char *ruser, const char *luser)
* Returns 0 if ok, -1 if not ok.
*/
int
-__ivaliduser (FILE *hostf, u_int32_t raddr, const char *luser,
+__ivaliduser (FILE *hostf, uint32_t raddr, const char *luser,
const char *ruser)
{
struct sockaddr_in ra;
@@ -645,7 +646,6 @@ __ivaliduser (FILE *hostf, u_int32_t raddr, const char *luser,
/* Returns 1 on positive match, 0 on no match, -1 on negative match. */
static int
-internal_function
__checkhost_sa (struct sockaddr *ra, size_t ralen, char *lhost,
const char *rhost)
{
@@ -699,7 +699,6 @@ __checkhost_sa (struct sockaddr *ra, size_t ralen, char *lhost,
/* Returns 1 on positive match, 0 on no match, -1 on negative match. */
static int
-internal_function
__icheckuser (const char *luser, const char *ruser)
{
/*