summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormillert <>2001-09-04 23:35:58 +0000
committermillert <>2001-09-04 23:35:58 +0000
commit5e24150fd2b66c78de49cbce05efef82adcf4d7d (patch)
tree8304b9c2cba586b245ee8b14ec3c91bab60ea298
parent311001e1e488adf9abd558a81b3c0bdee6f5b75b (diff)
downloadopenbsd-5e24150fd2b66c78de49cbce05efef82adcf4d7d.tar.gz
openbsd-5e24150fd2b66c78de49cbce05efef82adcf4d7d.tar.bz2
openbsd-5e24150fd2b66c78de49cbce05efef82adcf4d7d.zip
Replace the deprecated BSD sigsetmask/sigblock/sigpause functions with their POSIX counterparts.
-rw-r--r--src/lib/libc/net/rcmd.c16
-rw-r--r--src/lib/libc/stdlib/system.c14
2 files changed, 17 insertions, 13 deletions
diff --git a/src/lib/libc/net/rcmd.c b/src/lib/libc/net/rcmd.c
index 1439fff061..a9fdc1b1d0 100644
--- a/src/lib/libc/net/rcmd.c
+++ b/src/lib/libc/net/rcmd.c
@@ -34,7 +34,7 @@
34 */ 34 */
35 35
36#if defined(LIBC_SCCS) && !defined(lint) 36#if defined(LIBC_SCCS) && !defined(lint)
37static char *rcsid = "$OpenBSD: rcmd.c,v 1.38 2001/06/27 00:58:55 lebel Exp $"; 37static char *rcsid = "$OpenBSD: rcmd.c,v 1.39 2001/09/04 23:35:58 millert Exp $";
38#endif /* LIBC_SCCS and not lint */ 38#endif /* LIBC_SCCS and not lint */
39 39
40#include <sys/param.h> 40#include <sys/param.h>
@@ -87,7 +87,7 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
87 int error; 87 int error;
88 struct sockaddr_storage from; 88 struct sockaddr_storage from;
89 fd_set *readsp = NULL; 89 fd_set *readsp = NULL;
90 int oldmask; 90 sigset_t oldmask, mask;
91 pid_t pid; 91 pid_t pid;
92 int s, lport, timo; 92 int s, lport, timo;
93 char c, *p; 93 char c, *p;
@@ -132,7 +132,9 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
132 132
133 r = res; 133 r = res;
134 refused = 0; 134 refused = 0;
135 oldmask = sigblock(sigmask(SIGURG)); 135 sigemptyset(&mask);
136 sigaddset(&mask, SIGURG);
137 oldmask = sigprocmask(SIG_BLOCK, &mask, &oldmask);
136 for (timo = 1, lport = IPPORT_RESERVED - 1;;) { 138 for (timo = 1, lport = IPPORT_RESERVED - 1;;) {
137 s = rresvport_af(&lport, r->ai_family); 139 s = rresvport_af(&lport, r->ai_family);
138 if (s < 0) { 140 if (s < 0) {
@@ -146,7 +148,7 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
146 r = r->ai_next; 148 r = r->ai_next;
147 continue; 149 continue;
148 } else { 150 } else {
149 sigsetmask(oldmask); 151 sigprocmask(SIG_SETMASK, &oldmask, NULL);
150 freeaddrinfo(res); 152 freeaddrinfo(res);
151 return (-1); 153 return (-1);
152 } 154 }
@@ -194,7 +196,7 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
194 } 196 }
195 (void)fprintf(stderr, "%s: %s\n", res->ai_canonname, 197 (void)fprintf(stderr, "%s: %s\n", res->ai_canonname,
196 strerror(errno)); 198 strerror(errno));
197 sigsetmask(oldmask); 199 sigprocmask(SIG_SETMASK, &oldmask, NULL);
198 freeaddrinfo(res); 200 freeaddrinfo(res);
199 return (-1); 201 return (-1);
200 } 202 }
@@ -306,7 +308,7 @@ again:
306 } 308 }
307 goto bad2; 309 goto bad2;
308 } 310 }
309 sigsetmask(oldmask); 311 sigprocmask(SIG_SETMASK, &oldmask, NULL);
310 free(readsp); 312 free(readsp);
311 return (s); 313 return (s);
312bad2: 314bad2:
@@ -316,7 +318,7 @@ bad:
316 if (readsp) 318 if (readsp)
317 free(readsp); 319 free(readsp);
318 (void)close(s); 320 (void)close(s);
319 sigsetmask(oldmask); 321 sigprocmask(SIG_SETMASK, &oldmask, NULL);
320 return (-1); 322 return (-1);
321} 323}
322 324
diff --git a/src/lib/libc/stdlib/system.c b/src/lib/libc/stdlib/system.c
index 3e1b047393..dadf3fe841 100644
--- a/src/lib/libc/stdlib/system.c
+++ b/src/lib/libc/stdlib/system.c
@@ -32,7 +32,7 @@
32 */ 32 */
33 33
34#if defined(LIBC_SCCS) && !defined(lint) 34#if defined(LIBC_SCCS) && !defined(lint)
35static char *rcsid = "$OpenBSD: system.c,v 1.3 1996/09/15 09:31:52 tholo Exp $"; 35static char *rcsid = "$OpenBSD: system.c,v 1.4 2001/09/04 23:35:58 millert Exp $";
36#endif /* LIBC_SCCS and not lint */ 36#endif /* LIBC_SCCS and not lint */
37 37
38#include <sys/types.h> 38#include <sys/types.h>
@@ -50,7 +50,7 @@ system(command)
50{ 50{
51 pid_t pid; 51 pid_t pid;
52 sig_t intsave, quitsave; 52 sig_t intsave, quitsave;
53 int omask; 53 sigset_t mask, omask;
54 int pstat; 54 int pstat;
55 char *argp[] = {"sh", "-c", NULL, NULL}; 55 char *argp[] = {"sh", "-c", NULL, NULL};
56 56
@@ -59,13 +59,15 @@ system(command)
59 59
60 argp[2] = (char *)command; 60 argp[2] = (char *)command;
61 61
62 omask = sigblock(sigmask(SIGCHLD)); 62 sigemptyset(&mask);
63 sigaddset(&mask, SIGCHLD);
64 sigprocmask(SIG_BLOCK, &mask, &omask);
63 switch(pid = vfork()) { 65 switch(pid = vfork()) {
64 case -1: /* error */ 66 case -1: /* error */
65 (void)sigsetmask(omask); 67 sigprocmask(SIG_SETMASK, &omask, NULL);
66 return(-1); 68 return(-1);
67 case 0: /* child */ 69 case 0: /* child */
68 (void)sigsetmask(omask); 70 sigprocmask(SIG_SETMASK, &omask, NULL);
69 execve(_PATH_BSHELL, argp, environ); 71 execve(_PATH_BSHELL, argp, environ);
70 _exit(127); 72 _exit(127);
71 } 73 }
@@ -73,7 +75,7 @@ system(command)
73 intsave = signal(SIGINT, SIG_IGN); 75 intsave = signal(SIGINT, SIG_IGN);
74 quitsave = signal(SIGQUIT, SIG_IGN); 76 quitsave = signal(SIGQUIT, SIG_IGN);
75 pid = waitpid(pid, (int *)&pstat, 0); 77 pid = waitpid(pid, (int *)&pstat, 0);
76 (void)sigsetmask(omask); 78 sigprocmask(SIG_SETMASK, &omask, NULL);
77 (void)signal(SIGINT, intsave); 79 (void)signal(SIGINT, intsave);
78 (void)signal(SIGQUIT, quitsave); 80 (void)signal(SIGQUIT, quitsave);
79 return(pid == -1 ? -1 : pstat); 81 return(pid == -1 ? -1 : pstat);