From owner-svn-src-head@freebsd.org Thu Dec 22 05:55:46 2016 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 284E1C8CDF0; Thu, 22 Dec 2016 05:55:46 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 02C1412E0; Thu, 22 Dec 2016 05:55:45 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id uBM5tjsu071125; Thu, 22 Dec 2016 05:55:45 GMT (envelope-from hrs@FreeBSD.org) Received: (from hrs@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id uBM5tjKC071124; Thu, 22 Dec 2016 05:55:45 GMT (envelope-from hrs@FreeBSD.org) Message-Id: <201612220555.uBM5tjKC071124@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: hrs set sender to hrs@FreeBSD.org using -f From: Hiroki Sato Date: Thu, 22 Dec 2016 05:55:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r310385 - head/usr.sbin/syslogd X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Dec 2016 05:55:46 -0000 Author: hrs Date: Thu Dec 22 05:55:44 2016 New Revision: 310385 URL: https://svnweb.freebsd.org/changeset/base/310385 Log: Initialize a structure by using a compound literal to avoid forgetting to zero unspecified members. Modified: head/usr.sbin/syslogd/syslogd.c Modified: head/usr.sbin/syslogd/syslogd.c ============================================================================== --- head/usr.sbin/syslogd/syslogd.c Thu Dec 22 05:28:30 2016 (r310384) +++ head/usr.sbin/syslogd/syslogd.c Thu Dec 22 05:55:44 2016 (r310385) @@ -425,7 +425,6 @@ main(int argc, char *argv[]) int ch, i, s, fdsrmax = 0, bflag = 0, pflag = 0, Sflag = 0; fd_set *fdsr = NULL; struct timeval tv, *tvp; - struct sigaction sact; struct peer *pe; struct socklist *sl; sigset_t mask; @@ -633,10 +632,11 @@ main(int argc, char *argv[]) */ sigemptyset(&mask); sigaddset(&mask, SIGHUP); - sact.sa_handler = reapchild; - sact.sa_mask = mask; - sact.sa_flags = SA_RESTART; - (void)sigaction(SIGCHLD, &sact, NULL); + (void)sigaction(SIGCHLD, &(struct sigaction){ + .sa_handler = reapchild, + .sa_mask = mask, + .sa_flags = SA_RESTART + }, NULL); (void)signal(SIGALRM, domark); (void)signal(SIGPIPE, SIG_IGN); /* We'll catch EPIPE instead. */ (void)alarm(TIMERINTVL); @@ -650,10 +650,11 @@ main(int argc, char *argv[]) /* prevent SIGHUP and SIGCHLD handlers from running in parallel */ sigemptyset(&mask); sigaddset(&mask, SIGCHLD); - sact.sa_handler = init; - sact.sa_mask = mask; - sact.sa_flags = SA_RESTART; - (void)sigaction(SIGHUP, &sact, NULL); + (void)sigaction(SIGHUP, &(struct sigaction){ + .sa_handler = init, + .sa_mask = mask, + .sa_flags = SA_RESTART + }, NULL); tvp = &tv; tv.tv_sec = tv.tv_usec = 0; @@ -750,7 +751,7 @@ static void unmapped(struct sockaddr *sa) { struct sockaddr_in6 *sin6; - struct sockaddr_in sin4; + struct sockaddr_in sin; if (sa == NULL || sa->sa_family != AF_INET6 || @@ -759,15 +760,14 @@ unmapped(struct sockaddr *sa) sin6 = satosin6(sa); if (!IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) return; - - memset(&sin4, 0, sizeof(sin4)); - sin4.sin_family = AF_INET; - sin4.sin_len = sizeof(sin4); - memcpy(&sin4.sin_addr, &sin6->sin6_addr.s6_addr[12], - sizeof(sin4.sin_addr)); - sin4.sin_port = sin6->sin6_port; - - memcpy(sa, &sin4, sin4.sin_len); + sin = (struct sockaddr_in){ + .sin_family = AF_INET, + .sin_len = sizeof(sin), + .sin_port = sin6->sin6_port + }; + memcpy(&sin.sin_addr, &sin6->sin6_addr.s6_addr[12], + sizeof(sin.sin_addr)); + memcpy(sa, &sin, sizeof(sin)); } static void @@ -2154,9 +2154,10 @@ cfline(const char *line, const char *pro else p = NULL; - memset(&hints, 0, sizeof(hints)); - hints.ai_family = family; - hints.ai_socktype = SOCK_DGRAM; + hints = (struct addrinfo){ + .ai_family = family, + .ai_socktype = SOCK_DGRAM + }; error = getaddrinfo(f->fu_forw_hname, p ? p : "syslog", &hints, &res); if (error) { @@ -2447,16 +2448,18 @@ allowaddr(char *s) cp2 = NULL; } #endif - memset(&hints, 0, sizeof(hints)); - hints.ai_family = PF_UNSPEC; - hints.ai_socktype = SOCK_DGRAM; - hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST; + hints = (struct addrinfo){ + .ai_family = PF_UNSPEC, + .ai_socktype = SOCK_DGRAM, + .ai_flags = AI_PASSIVE | AI_NUMERICHOST + }; if (getaddrinfo(s, NULL, &hints, &res) == 0) { ap->isnumeric = 1; memcpy(&ap->a_addr, res->ai_addr, res->ai_addrlen); - memset(&ap->a_mask, 0, sizeof(ap->a_mask)); - ap->a_mask.ss_family = res->ai_family; - ap->a_mask.ss_len = res->ai_addrlen; + ap->a_mask = (struct sockaddr_storage){ + .ss_family = res->ai_family, + .ss_len = res->ai_addrlen + }; if (res->ai_family == AF_INET) { maskp = &sstosin(&ap->a_mask)->sin_addr.s_addr; addrp = &sstosin(&ap->a_addr)->sin_addr.s_addr; @@ -2567,10 +2570,11 @@ validate(struct sockaddr *sa, const char return (1); (void)strlcpy(name, hname, sizeof(name)); - memset(&hints, 0, sizeof(hints)); - hints.ai_family = PF_UNSPEC; - hints.ai_socktype = SOCK_DGRAM; - hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST; + hints = (struct addrinfo){ + .ai_family = PF_UNSPEC, + .ai_socktype = SOCK_DGRAM, + .ai_flags = AI_PASSIVE | AI_NUMERICHOST + }; if (getaddrinfo(name, NULL, &hints, &res) == 0) freeaddrinfo(res); else if (strchr(name, '.') == NULL) { @@ -2751,9 +2755,10 @@ deadq_enter(pid_t pid, const char *name) logerror("malloc"); exit(1); } - - p->dq_pid = pid; - p->dq_timeout = DQ_TIMO_INIT; + *p = (struct deadq_entry){ + .dq_pid = pid, + .dq_timeout = DQ_TIMO_INIT + }; TAILQ_INSERT_TAIL(&deadq_head, p, dq_entries); } @@ -2831,11 +2836,11 @@ socksetup(struct peer *pe) } #endif } - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_UNSPEC; - hints.ai_socktype = SOCK_DGRAM; - hints.ai_flags = AI_PASSIVE; - + hints = (struct addrinfo){ + .ai_family = AF_UNSPEC, + .ai_socktype = SOCK_DGRAM, + .ai_flags = AI_PASSIVE + }; dprintf("Try %s\n", pe->pe_name); if (pe->pe_serv == NULL) pe->pe_serv = "syslog"; @@ -2847,7 +2852,6 @@ socksetup(struct peer *pe) } for (res = res0; res != NULL; res = res->ai_next) { int s; - int on = 1; if (res->ai_family == AF_LOCAL) unlink(pe->pe_name); @@ -2868,7 +2872,7 @@ socksetup(struct peer *pe) #ifdef INET6 if (res->ai_family == AF_INET6) { if (setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, - (char *)&on, sizeof(on)) < 0) { + &(int){1}, sizeof(int)) < 0) { logerror("setsockopt(IPV6_V6ONLY)"); close(s); error++; @@ -2877,7 +2881,7 @@ socksetup(struct peer *pe) } #endif if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, - (char *)&on, sizeof(on)) < 0) { + &(int){1}, sizeof(int)) < 0) { logerror("setsockopt(SO_REUSEADDR)"); close(s); error++; @@ -2938,11 +2942,10 @@ socksetup(struct peer *pe) static void increase_rcvbuf(int fd) { - socklen_t len, slen; - - slen = sizeof(len); + socklen_t len; - if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &len, &slen) == 0) { + if (getsockopt(fd, SOL_SOCKET, SO_RCVBUF, &len, + &(socklen_t){sizeof(len)}) == 0) { if (len < RCVBUF_MINSIZE) { len = RCVBUF_MINSIZE; setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &len, sizeof(len));