araujo updated this revision to Diff 6874.
araujo added a comment.
This revision now requires review to proceed.

Address dim@ comment related with the function: broadcast_result().
Also I setup my machine following this page: 
https://www.freebsd.org/doc/handbook/network-nis.html

Seems everything works fine.

Result:
root@srcCODE:~ # ypcat passwd
smmsp:*:25:25:Sendmail Submission User:/var/spool/clientmqueue:/usr/sbin/nologin
hast:*:845:845:HAST unprivileged user:/var/empty:/usr/sbin/nologin
bin:*:3:7:Binaries Commands and Source:/:/usr/sbin/nologin
tty:*:4:65533:Tty Sandbox:/:/usr/sbin/nologin
kmem:*:5:65533:KMem Sandbox:/:/usr/sbin/nologin
sshd:*:22:22:Secure Shell Daemon:/var/empty:/usr/sbin/nologin
proxy:*:62:62:Packet Filter pseudo-user:/nonexistent:/usr/sbin/nologin
unbound:*:59:59:Unbound DNS Resolver:/var/unbound:/usr/sbin/nologin
_pflogd:*:64:64:pflogd privsep user:/var/empty:/usr/sbin/nologin
nobody:*:65534:65534:Unprivileged user:/nonexistent:/usr/sbin/nologin
root:*:0:0:Charlie &:/root:/bin/csh
toor:*:0:0:Bourne-again Superuser:/root:
daemon:*:1:1:Owner of many system processes:/root:/usr/sbin/nologin
operator:*:2:5:System &:/:/usr/sbin/nologin
man:*:9:9:Mister Man Pages:/usr/share/man:/usr/sbin/nologin
games:*:7:13:Games pseudo-user:/usr/games:/usr/sbin/nologin
news:*:8:8:News Subsystem:/:/usr/sbin/nologin
bind:*:53:53:Bind Sandbox:/:/usr/sbin/nologin
uucp:*:66:66:UUCP 
pseudo-user:/var/spool/uucppublic:/usr/local/libexec/uucp/uucico
www:*:80:80:World Wide Web Owner:/nonexistent:/usr/sbin/nologin
mailnull:*:26:26:Sendmail Default User:/var/spool/mqueue:/usr/sbin/nologin
_dhcp:*:65:65:dhcp programs:/var/empty:/usr/sbin/nologin
pop:*:68:6:Post Office Owner:/nonexistent:/usr/sbin/nologin
auditdistd:*:78:77:Auditdistd unprivileged user:/var/empty:/usr/sbin/nologin
git_daemon:*:964:964:git daemon:/nonexistent:/usr/sbin/nologin


REPOSITORY
  rS FreeBSD src repository

CHANGES SINCE LAST UPDATE
  https://reviews.freebsd.org/D2690?vs=6699&id=6874

BRANCH
  /head

REVISION DETAIL
  https://reviews.freebsd.org/D2690

AFFECTED FILES
  usr.sbin/ypbind/ypbind.c

EMAIL PREFERENCES
  https://reviews.freebsd.org/settings/panel/emailpreferences/

To: araujo, bapt, emaste, rodrigc, dim
Cc: imp, freebsd-toolchain-list
diff --git a/usr.sbin/ypbind/ypbind.c b/usr.sbin/ypbind/ypbind.c
--- a/usr.sbin/ypbind/ypbind.c
+++ b/usr.sbin/ypbind/ypbind.c
@@ -106,16 +106,16 @@
 void	yp_restricted_mode(char *);
 int	verify(struct in_addr);
 
-char *domain_name;
-struct _dom_binding *ypbindlist;
+static char *domain_name;
+static struct _dom_binding *ypbindlist;
 static struct _dom_binding *broad_domain;
 
 #define YPSET_NO	0
 #define YPSET_LOCAL	1
 #define YPSET_ALL	2
-int ypsetmode = YPSET_NO;
-int ypsecuremode = 0;
-int ppid;
+static int ypsetmode = YPSET_NO;
+static int ypsecuremode = 0;
+static int ppid;
 
 #define NOT_RESPONDING_HYSTERESIS 10
 static int not_responding_count = 0;
@@ -126,9 +126,9 @@
  * in restricted_addrs will be used for binding.
  */
 #define RESTRICTED_SERVERS 10
-int yp_restricted = 0;
-int yp_manycast = 0;
-struct in_addr restricted_addrs[RESTRICTED_SERVERS];
+static int yp_restricted = 0;
+static int yp_manycast = 0;
+static struct in_addr restricted_addrs[RESTRICTED_SERVERS];
 
 /* No more than MAX_CHILDREN child broadcasters at a time. */
 #ifndef MAX_CHILDREN
@@ -148,13 +148,13 @@
 #define MAX_RETRIES 30
 #endif
 
-int retries = 0;
-int children = 0;
-int domains = 0;
-int yplockfd;
-fd_set fdsr;
+static int retries = 0;
+static int children = 0;
+static int domains = 0;
+static int yplockfd;
+static fd_set fdsr;
 
-SVCXPRT *udptransp, *tcptransp;
+static SVCXPRT *udptransp, *tcptransp;
 
 void *
 ypbindproc_null_2_yp(SVCXPRT *transp, void *argp, CLIENT *clnt)
@@ -165,7 +165,7 @@
 	return &res;
 }
 
-struct ypbind_resp *
+static struct ypbind_resp *
 ypbindproc_domain_2_yp(SVCXPRT *transp, domainname *argp, CLIENT *clnt)
 {
 	static struct ypbind_resp res;
@@ -225,10 +225,10 @@
 
 	res.ypbind_status = YPBIND_SUCC_VAL;
 	res.ypbind_resp_u.ypbind_error = 0; /* Success */
-	*(u_int32_t *)&res.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_addr =
-		ypdb->dom_server_addr.sin_addr.s_addr;
-	*(u_short *)&res.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_port =
-		ypdb->dom_server_addr.sin_port;
+	memcpy(&res.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_addr,
+	    &ypdb->dom_server_addr.sin_addr.s_addr, sizeof(u_int32_t));
+	memcpy(&res.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_port,
+	    &ypdb->dom_server_addr.sin_port, sizeof(u_short));
 	/*printf("domain %s at %s/%d\n", ypdb->dom_domain,
 		inet_ntoa(ypdb->dom_server_addr.sin_addr),
 		ntohs(ypdb->dom_server_addr.sin_port));*/
@@ -275,8 +275,12 @@
 
 	bzero(&bindsin, sizeof bindsin);
 	bindsin.sin_family = AF_INET;
-	bindsin.sin_addr.s_addr = *(u_int32_t *)argp->ypsetdom_binding.ypbind_binding_addr;
-	bindsin.sin_port = *(u_short *)argp->ypsetdom_binding.ypbind_binding_port;
+	memcpy(&bindsin.sin_addr.s_addr,
+	    &argp->ypsetdom_binding.ypbind_binding_addr,
+	    sizeof(u_int32_t));
+	memcpy(&bindsin.sin_port,
+	    &argp->ypsetdom_binding.ypbind_binding_port,
+	    sizeof(u_short));
 	rpc_received(argp->ypsetdom_domain, &bindsin, 1);
 
 	return((void *) &result);
@@ -615,9 +619,7 @@
 	return (0);
 }
 
-bool_t broadcast_result(out, addr)
-bool_t *out;
-struct sockaddr_in *addr;
+static bool_t broadcast_result(bool_t *out, struct sockaddr_in *addr)
 {
 	if (retries >= MAX_RETRIES) {
 		bzero(addr, sizeof(struct sockaddr_in));
@@ -945,8 +947,10 @@
 
 	bzero(&ybr, sizeof ybr);
 	ybr.ypbind_status = YPBIND_SUCC_VAL;
-	*(u_int32_t *)&ybr.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_addr = raddrp->sin_addr.s_addr;
-	*(u_short *)&ybr.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_port = raddrp->sin_port;
+	memcpy(&ybr.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_addr,
+	    &raddrp->sin_addr.s_addr, sizeof(u_int32_t));
+	memcpy(&ybr.ypbind_resp_u.ypbind_bindinfo.ypbind_binding_port,
+	    &raddrp->sin_port, sizeof(u_short));
 
 	if (writev(ypdb->dom_lockfd, iov, 2) != iov[0].iov_len + iov[1].iov_len) {
 		syslog(LOG_WARNING, "write: %m");

_______________________________________________
freebsd-toolchain@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"

Reply via email to