svn commit: r201083 - head/lib/libarchive

Tim Kientzle kientzle at FreeBSD.org
Mon Dec 28 02:09:57 UTC 2009


Author: kientzle
Date: Mon Dec 28 02:09:57 2009
New Revision: 201083
URL: http://svn.freebsd.org/changeset/base/201083

Log:
  Compatibility fix for some older systems with non-POSIX getgrnam_r/getpwnam_r
  and a minor style fix for the hash function.

Modified:
  head/lib/libarchive/archive_write_disk_set_standard_lookup.c

Modified: head/lib/libarchive/archive_write_disk_set_standard_lookup.c
==============================================================================
--- head/lib/libarchive/archive_write_disk_set_standard_lookup.c	Mon Dec 28 02:05:28 2009	(r201082)
+++ head/lib/libarchive/archive_write_disk_set_standard_lookup.c	Mon Dec 28 02:09:57 2009	(r201083)
@@ -125,6 +125,7 @@ lookup_gid(void *private_data, const cha
 		int r;
 
 		for (;;) {
+			result = &grent; /* Old getgrnam_r ignores last arg. */
 			r = getgrnam_r(gname, &grent, buffer, bufsize, &result);
 			if (r == 0)
 				break;
@@ -184,6 +185,7 @@ lookup_uid(void *private_data, const cha
 		int r;
 
 		for (;;) {
+			result = &pwent; /* Old getpwnam_r ignores last arg. */
 			r = getpwnam_r(uname, &pwent, buffer, bufsize, &result);
 			if (r == 0)
 				break;
@@ -230,8 +232,8 @@ hash(const char *p)
 	   as used by ELF for hashing function names. */
 	unsigned g, h = 0;
 	while (*p != '\0') {
-		h = ( h << 4 ) + *p++;
-		if (( g = h & 0xF0000000 )) {
+		h = (h << 4) + *p++;
+		if ((g = h & 0xF0000000) != 0) {
 			h ^= g >> 24;
 			h &= 0x0FFFFFFF;
 		}


More information about the svn-src-head mailing list