aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/syslogd/syslogd.c
diff options
context:
space:
mode:
authorChris Timmons <cwt@FreeBSD.org>1998-12-28 00:39:14 +0000
committerChris Timmons <cwt@FreeBSD.org>1998-12-28 00:39:14 +0000
commit65f14c005563f5c6f8c39afa7c1133287698d418 (patch)
tree16b9fe0dc426a65ee6e9dafebe2a46940f14bbbd /usr.sbin/syslogd/syslogd.c
parent240d6d79b15a2bd14474b99415580f3cea64365f (diff)
downloadsrc-65f14c005563f5c6f8c39afa7c1133287698d418.tar.gz
src-65f14c005563f5c6f8c39afa7c1133287698d418.zip
Block SIGHUP during call to gethostbyaddr().
PR: 5548 Reviewed by: Matthew Dillon <dillon@apollo.backplane.com> Obtained from: OpenBSD
Notes
Notes: svn path=/head/; revision=42114
Diffstat (limited to 'usr.sbin/syslogd/syslogd.c')
-rw-r--r--usr.sbin/syslogd/syslogd.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c
index 685adaf8790b..c0edf917fdbf 100644
--- a/usr.sbin/syslogd/syslogd.c
+++ b/usr.sbin/syslogd/syslogd.c
@@ -42,7 +42,7 @@ static const char copyright[] =
static char sccsid[] = "@(#)syslogd.c 8.3 (Berkeley) 4/4/94";
#endif
static const char rcsid[] =
- "$Id: syslogd.c,v 1.42 1998/11/05 10:51:21 dg Exp $";
+ "$Id: syslogd.c,v 1.43 1998/12/04 06:49:20 jkh Exp $";
#endif /* not lint */
/*
@@ -1066,6 +1066,7 @@ cvthname(f)
struct sockaddr_in *f;
{
struct hostent *hp;
+ sigset_t omask, nmask;
char *p;
dprintf("cvthname(%s)\n", inet_ntoa(f->sin_addr));
@@ -1074,8 +1075,12 @@ cvthname(f)
dprintf("Malformed from address\n");
return ("???");
}
+ sigemptyset(&nmask);
+ sigaddset(&nmask, SIGHUP);
+ sigprocmask(SIG_BLOCK, &nmask, &omask);
hp = gethostbyaddr((char *)&f->sin_addr,
sizeof(struct in_addr), f->sin_family);
+ sigprocmask(SIG_SETMASK, &omask, NULL);
if (hp == 0) {
dprintf("Host name for your address (%s) unknown\n",
inet_ntoa(f->sin_addr));