Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jan 2015 15:35:56 +0000 (UTC)
From:      "Pedro F. Giffuni" <pfg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r277879 - in head/contrib/amd: amd hlfsd
Message-ID:  <201501291535.t0TFZuiS082126@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pfg
Date: Thu Jan 29 15:35:55 2015
New Revision: 277879
URL: https://svnweb.freebsd.org/changeset/base/277879

Log:
  MFV	r277870
  Fix compile warnings for gcc-4.4.x
  This also fixes at least a warning with clang 3.6.0
  including the fix for r277841.
  
  MFC after:	1 week

Modified:
  head/contrib/amd/amd/amfs_program.c
  head/contrib/amd/amd/readdir.c
  head/contrib/amd/hlfsd/homedir.c
  head/contrib/amd/hlfsd/stubs.c
Directory Properties:
  head/contrib/amd/   (props changed)

Modified: head/contrib/amd/amd/amfs_program.c
==============================================================================
--- head/contrib/amd/amd/amfs_program.c	Thu Jan 29 15:33:05 2015	(r277878)
+++ head/contrib/amd/amd/amfs_program.c	Thu Jan 29 15:35:55 2015	(r277879)
@@ -147,10 +147,12 @@ amfs_program_exec(char *info)
   (void) fclose(stdout);
   if (!logfp)
     logfp = stderr;		/* initialize before possible first use */
-  (void) dup(fileno(logfp));
+    if (dup(fileno(logfp)) == -1)
+      return errno;
   if (fileno(logfp) != fileno(stderr)) {
     (void) fclose(stderr);
-    (void) dup(fileno(logfp));
+    if (dup(fileno(logfp)) == -1)
+      return errno;
   }
 
   /*

Modified: head/contrib/amd/amd/readdir.c
==============================================================================
--- head/contrib/amd/amd/readdir.c	Thu Jan 29 15:33:05 2015	(r277878)
+++ head/contrib/amd/amd/readdir.c	Thu Jan 29 15:35:55 2015	(r277879)
@@ -63,6 +63,7 @@ static int key_already_in_chain(char *ke
 static nfsentry *make_entry_chain(am_node *mp, const nfsentry *current_chain, int fully_browsable);
 static int amfs_readdir_browsable(am_node *mp, nfscookie cookie, nfsdirlist *dp, nfsentry *ep, u_int count, int fully_browsable);
 
+static const u_int dotdotcookie = DOT_DOT_COOKIE;
 
 /****************************************************************************
  *** FUNCTIONS                                                             ***
@@ -178,8 +179,9 @@ make_entry_chain(am_node *mp, const nfse
 
       /* we have space.  put entry in next cell */
       ++last_cookie;
-      chain[num_entries].ne_fileid = (u_int) last_cookie;
-      *(u_int *) chain[num_entries].ne_cookie = (u_int) last_cookie;
+      chain[num_entries].ne_fileid = last_cookie;
+      (void)memcpy(chain[num_entries].ne_cookie, &last_cookie,
+	sizeof(last_cookie));
       chain[num_entries].ne_name = key;
       if (num_entries < max_entries - 1) {	/* link to next one */
 	chain[num_entries].ne_nextentry = &chain[num_entries + 1];
@@ -253,7 +255,7 @@ amfs_readdir_browsable(am_node *mp, nfsc
     ep[0].ne_fileid = mp->am_gen;
     ep[0].ne_name = ".";
     ep[0].ne_nextentry = &ep[1];
-    *(u_int *) ep[0].ne_cookie = 0;
+    (void)memset(ep[0].ne_cookie, 0, sizeof(u_int));
 
     /* construct ".." */
     if (mp->am_parent)
@@ -300,9 +302,12 @@ amfs_readdir_browsable(am_node *mp, nfsc
       nfsentry *ne;
       for (j = 0, ne = te; ne; ne = ne->ne_nextentry)
 	plog(XLOG_DEBUG, "gen2 key %4d \"%s\"", j++, ne->ne_name);
-      for (j = 0, ne = ep; ne; ne = ne->ne_nextentry)
+      for (j = 0, ne = ep; ne; ne = ne->ne_nextentry) {
+	u_int cookie;
+	(void)memcpy(&cookie, ne->ne_cookie, sizeof(cookie));
 	plog(XLOG_DEBUG, "gen2+ key %4d \"%s\" fi=%d ck=%d",
-	     j++, ne->ne_name, ne->ne_fileid, *(u_int *)ne->ne_cookie);
+	     j++, ne->ne_name, ne->ne_fileid, cookie);
+      }
       plog(XLOG_DEBUG, "EOF is %d", dp->dl_eof);
     }
     return 0;
@@ -412,7 +417,7 @@ amfs_generic_readdir(am_node *mp, nfscoo
     ep[0].ne_fileid = mp->am_gen;
     ep[0].ne_name = ".";
     ep[0].ne_nextentry = &ep[1];
-    *(u_int *) ep[0].ne_cookie = 0;
+    (void)memset(ep[0].ne_cookie, 0, sizeof(u_int));
 
     /* construct ".." */
     if (mp->am_parent)
@@ -429,9 +434,12 @@ amfs_generic_readdir(am_node *mp, nfscoo
     if (amuDebug(D_READDIR)) {
       nfsentry *ne;
       int j;
-      for (j = 0, ne = ep; ne; ne = ne->ne_nextentry)
+      for (j = 0, ne = ep; ne; ne = ne->ne_nextentry) {
+	u_int cookie;
+	(void)memcpy(&cookie, ne->ne_cookie, sizeof(cookie));
 	plog(XLOG_DEBUG, "gen1 key %4d \"%s\" fi=%d ck=%d",
-	     j++, ne->ne_name, ne->ne_fileid, *(u_int *)ne->ne_cookie);
+	     j++, ne->ne_name, ne->ne_fileid, cookie);
+      }
     }
     return 0;
   }
@@ -460,9 +468,9 @@ amfs_generic_readdir(am_node *mp, nfscoo
       am_node *xp_next = next_nonerror_node(xp->am_osib);
 
       if (xp_next) {
-	*(u_int *) ep->ne_cookie = xp_next->am_gen;
+	(void)memcpy(ep->ne_cookie, &xp_next->am_gen, sizeof(xp_next->am_gen));
       } else {
-	*(u_int *) ep->ne_cookie = DOT_DOT_COOKIE;
+	(void)memcpy(ep->ne_cookie, &dotdotcookie, sizeof(dotdotcookie));
 	dp->dl_eof = TRUE;
       }
 
@@ -488,9 +496,12 @@ amfs_generic_readdir(am_node *mp, nfscoo
     if (amuDebug(D_READDIR)) {
       nfsentry *ne;
       int j;
-      for (j=0,ne=ep; ne; ne=ne->ne_nextentry)
+      for (j=0,ne=ep; ne; ne=ne->ne_nextentry) {
+	u_int cookie;
+	(void)memcpy(&cookie, ne->ne_cookie, sizeof(cookie));
 	plog(XLOG_DEBUG, "gen2 key %4d \"%s\" fi=%d ck=%d",
-	     j++, ne->ne_name, ne->ne_fileid, *(u_int *)ne->ne_cookie);
+	     j++, ne->ne_name, ne->ne_fileid, cookie);
+      }
     }
     return 0;
   }

Modified: head/contrib/amd/hlfsd/homedir.c
==============================================================================
--- head/contrib/amd/hlfsd/homedir.c	Thu Jan 29 15:33:05 2015	(r277878)
+++ head/contrib/amd/hlfsd/homedir.c	Thu Jan 29 15:35:55 2015	(r277879)
@@ -492,9 +492,10 @@ readent:
 
   /* read records */
   buf[0] = '\0';
-  fgets(buf, 256, passwd_fp);
+  if (fgets(buf, 256, passwd_fp) == NULL)
+    return NULL;
   passwd_line++;
-  if (!buf || buf[0] == '\0')
+  if (buf[0] == '\0')
     goto readent;
 
   /* read user name */

Modified: head/contrib/amd/hlfsd/stubs.c
==============================================================================
--- head/contrib/amd/hlfsd/stubs.c	Thu Jan 29 15:33:05 2015	(r277878)
+++ head/contrib/amd/hlfsd/stubs.c	Thu Jan 29 15:35:55 2015	(r277879)
@@ -164,8 +164,7 @@ nfsproc_getattr_2_svc(am_nfs_fh *argp, s
     if (gid != hlfs_gid) {
       res.ns_status = NFSERR_STALE;
     } else {
-      memset((char *) &uid, 0, sizeof(int));
-      uid = *(u_int *) argp->fh_data;
+      (void)memcpy(&uid, argp->fh_data, sizeof(uid));
       if (plt_search(uid) != (uid2home_t *) NULL) {
 	res.ns_status = NFS_OK;
 	un_fattr.na_fileid = uid;
@@ -282,8 +281,8 @@ nfsproc_lookup_2_svc(nfsdiropargs *argp,
     } else {			/* entry found and gid is permitted */
       un_fattr.na_fileid = untab[idx].uid;
       res.dr_u.dr_drok_u.drok_attributes = un_fattr;
-      memset((char *) &un_fhandle, 0, sizeof(am_nfs_fh));
-      *(u_int *) un_fhandle.fh_data = (u_int) untab[idx].uid;
+      memset(&un_fhandle, 0, sizeof(un_fhandle));
+      memcpy(un_fhandle.fh_data, &untab[idx].uid, sizeof(untab[idx].uid));
       xstrlcpy((char *) &un_fhandle.fh_data[sizeof(int)],
 	       untab[idx].username,
 	       sizeof(am_nfs_fh) - sizeof(int));
@@ -338,8 +337,7 @@ nfsproc_readlink_2_svc(am_nfs_fh *argp, 
     }
 
     if (groupid == hlfs_gid) {
-      memset((char *) &userid, 0, sizeof(int));
-      userid = *(u_int *) argp->fh_data;
+      memcpy(&userid, argp->fh_data, sizeof(userid));
       username = (char *) &argp->fh_data[sizeof(int)];
       if (!(res.rlr_u.rlr_data_u = mailbox(userid, username)))
 	return (nfsreadlinkres *) NULL;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201501291535.t0TFZuiS082126>