Author: trasz
Date: Sun Mar 28 17:29:15 2010
New Revision: 205796
URL: http://svn.freebsd.org/changeset/base/205796

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

Modified:
  head/lib/libc/posix1e/acl_to_text_nfs4.c

Modified: head/lib/libc/posix1e/acl_to_text_nfs4.c
==============================================================================
--- head/lib/libc/posix1e/acl_to_text_nfs4.c    Sun Mar 28 17:17:32 2010        
(r205795)
+++ head/lib/libc/posix1e/acl_to_text_nfs4.c    Sun Mar 28 17:29:15 2010        
(r205796)
@@ -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);
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to