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);
 }
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to