Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Nov 2014 12:45:33 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r275034 - in stable: 10/usr.bin/locate/locate 7/usr.bin/locate/locate 8/usr.bin/locate/locate 9/usr.bin/locate/locate
Message-ID:  <201411251245.sAPCjXMg040254@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Tue Nov 25 12:45:31 2014
New Revision: 275034
URL: https://svnweb.freebsd.org/changeset/base/275034

Log:
  MFC r274847:
  
  Fix the following -Werror warnings from clang 3.5.0, while building
  usr.bin/locate:
  
  usr.bin/locate/locate/util.c:249:29: error: taking the absolute value of unsigned type 'unsigned int' has no effect [-Werror,-Wabsolute-value]
                              MAXPATHLEN, abs(i) < abs(htonl(i)) ? i : htonl(i));
                                                   ^
  usr.bin/locate/locate/util.c:249:29: note: remove the call to 'abs' since unsigned values cannot be negative
                              MAXPATHLEN, abs(i) < abs(htonl(i)) ? i : htonl(i));
                                                   ^~~
  usr.bin/locate/locate/util.c:274:32: error: taking the absolute value of unsigned type 'unsigned int' has no effect [-Werror,-Wabsolute-value]
                              MAXPATHLEN, abs(word) < abs(htonl(word)) ? word :
                                                      ^
  usr.bin/locate/locate/util.c:274:32: note: remove the call to 'abs' since unsigned values cannot be negative
                              MAXPATHLEN, abs(word) < abs(htonl(word)) ? word :
                                                      ^~~
  
  The problem is that ntohl() always returns an unsigned quantity.  In
  this case, it's expected to be cast back to a signed integer, but to
  stop complaints about abs() we just store it into an integer, and don't
  call ntohl() again.
  
  Reviewed by:	ngie
  Differential Revision: https://reviews.freebsd.org/D1196

Modified:
  stable/10/usr.bin/locate/locate/util.c
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/7/usr.bin/locate/locate/util.c
  stable/8/usr.bin/locate/locate/util.c
  stable/9/usr.bin/locate/locate/util.c
Directory Properties:
  stable/7/usr.bin/locate/   (props changed)
  stable/8/usr.bin/locate/   (props changed)
  stable/9/usr.bin/locate/   (props changed)

Modified: stable/10/usr.bin/locate/locate/util.c
==============================================================================
--- stable/10/usr.bin/locate/locate/util.c	Tue Nov 25 12:44:18 2014	(r275033)
+++ stable/10/usr.bin/locate/locate/util.c	Tue Nov 25 12:45:31 2014	(r275034)
@@ -235,7 +235,7 @@ getwm(p)
 		char buf[INTSIZE];
 		int i;
 	} u;
-	register int i;
+	register int i, hi;
 
 	for (i = 0; i < (int)INTSIZE; i++)
 		u.buf[i] = *p++;
@@ -243,10 +243,11 @@ getwm(p)
 	i = u.i;
 
 	if (i > MAXPATHLEN || i < -(MAXPATHLEN)) {
-		i = ntohl(i);
-		if (i > MAXPATHLEN || i < -(MAXPATHLEN))
+		hi = ntohl(i);
+		if (hi > MAXPATHLEN || hi < -(MAXPATHLEN))
 			errx(1, "integer out of +-MAXPATHLEN (%d): %u",
-			    MAXPATHLEN, abs(i) < abs(htonl(i)) ? i : htonl(i));
+			    MAXPATHLEN, abs(i) < abs(hi) ? i : hi);
+		return(hi);
 	}
 	return(i);
 }
@@ -263,16 +264,16 @@ int
 getwf(fp)
 	FILE *fp;
 {
-	register int word;
+	register int word, hword;
 
 	word = getw(fp);
 
 	if (word > MAXPATHLEN || word < -(MAXPATHLEN)) {
-		word = ntohl(word);
-		if (word > MAXPATHLEN || word < -(MAXPATHLEN))
+		hword = ntohl(word);
+		if (hword > MAXPATHLEN || hword < -(MAXPATHLEN))
 			errx(1, "integer out of +-MAXPATHLEN (%d): %u",
-			    MAXPATHLEN, abs(word) < abs(htonl(word)) ? word :
-				htonl(word));
+			    MAXPATHLEN, abs(word) < abs(hword) ? word : hword);
+		return(hword);
 	}
 	return(word);
 }



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