svn commit: r206542 - stable/8/lib/libc/posix1e

Edward Tomasz Napierala trasz at FreeBSD.org
Tue Apr 13 06:01:25 UTC 2010


Author: trasz
Date: Tue Apr 13 06:01:24 2010
New Revision: 206542
URL: http://svn.freebsd.org/changeset/base/206542

Log:
  MFC r205796:
  
  Make acl_to_text_np(3) not crash on long group or user names in NFSv4 ACLs.
  
  PR:		amd64/145091

Modified:
  stable/8/lib/libc/posix1e/acl_to_text_nfs4.c
Directory Properties:
  stable/8/lib/libc/   (props changed)
  stable/8/lib/libc/stdtime/   (props changed)

Modified: stable/8/lib/libc/posix1e/acl_to_text_nfs4.c
==============================================================================
--- stable/8/lib/libc/posix1e/acl_to_text_nfs4.c	Tue Apr 13 03:10:38 2010	(r206541)
+++ stable/8/lib/libc/posix1e/acl_to_text_nfs4.c	Tue Apr 13 06:01:24 2010	(r206542)
@@ -167,7 +167,7 @@ format_additional_id(char *str, size_t s
 static int
 format_entry(char *str, size_t size, const acl_entry_t entry, int flags)
 {
-	size_t off = 0, padding_length, maximum_who_field_length = 18;
+	size_t off = 0, min_who_field_length = 18;
 	acl_permset_t permset;
 	acl_flagset_t flagset;
 	int error, len;
@@ -188,12 +188,9 @@ format_entry(char *str, size_t size, con
 	if (error)
 		return (error);
 	len = strlen(buf);
-	padding_length = maximum_who_field_length - len;
-	if (padding_length > 0) {
-		memset(str, ' ', padding_length);
-		off += padding_length;
-	}
-	off += snprintf(str + off, size - off, "%s:", buf);
+	if (len < min_who_field_length)
+		len = min_who_field_length;
+	off += snprintf(str + off, size - off, "%*s:", len, buf);
 
 	error = _nfs4_format_access_mask(buf, sizeof(buf), *permset,
 	    flags & ACL_TEXT_VERBOSE);


More information about the svn-src-stable mailing list