Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Aug 2008 21:25:49 GMT
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 146802 for review
Message-ID:  <200808062125.m76LPnsG006704@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=146802

Change 146802 by trasz@trasz_traszkan on 2008/08/06 21:25:34

	Make error messages produced by acl_from_text more understandable.
	Also, fix an error, where passing unknown user name or group name
	woulnd't result in error being returned.

Affected files ...

.. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/posix1e/acl_from_text_nfs4.c#5 edit
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/posix1e/acl_support_nfs4.c#6 edit

Differences ...

==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/posix1e/acl_from_text_nfs4.c#5 (text+ko) ====

@@ -65,7 +65,7 @@
 	if (strcmp(str, "group") == 0 || strcmp(str, "g") == 0)
 		return (acl_set_tag_type(entry, ACL_GROUP));
 
-	warnx("Malformed \"tag\" field.");
+	warnx("malformed ACL: invalid \"tag\" field");
 
 	return (-1);
 }
@@ -83,7 +83,7 @@
 	qualifier_length = strlen(str);
 
 	if (qualifier_length == 0) {
-		warnx("Empty qualifier.");
+		warnx("malformed ACL: empty \"qualifier\" field");
 		return (-1);
 	}
 
@@ -92,7 +92,8 @@
 		id = strtod(str, &end);
 
 		if (end - str != qualifier_length) {
-			warnx("Trailing characters after numerical id.");
+			warnx("malformed ACL: trailing characters "
+			    "after numerical id");
 			return (-1);
 		}
 
@@ -109,8 +110,8 @@
 		/* XXX: Thread-unsafe. */
 		pwd = getpwnam(str);
 		if (pwd == NULL) {
-			warnx("Unknown user: %s", str);
-			return (0);
+			warnx("malformed ACL: unknown user \"%s\"", str);
+			return (-1);
 		}
 
 		return (acl_set_qualifier(entry, &(pwd->pw_uid)));
@@ -119,8 +120,8 @@
 	/* XXX: Thread-unsafe. */
 	grp = getgrnam(str);
 	if (grp == NULL) {
-		warnx("Unknown group: %s", str);
-		return (0);
+		warnx("malformed ACL: unknown group \"%s\"", str);
+		return (-1);
 	}
 
 	return (acl_set_qualifier(entry, &(grp->gr_gid)));
@@ -132,10 +133,8 @@
 	int error, perm;
 
 	error = _nfs4_parse_access_mask(str, &perm);
-	if (error) {
-		warnx("Malformed \"access mask\" field.");
+	if (error)
 		return (error);
-	}
 
 	error = acl_set_permset(entry, &perm);
 
@@ -148,10 +147,8 @@
 	int error, flags;
 
 	error = _nfs4_parse_flags(str, &flags);
-	if (error) {
-		warnx("Malformed \"flags\" field.");
+	if (error)
 		return (error);
-	}
 
 	error = acl_set_flagset_np(entry, &flags);
 
@@ -173,7 +170,7 @@
 	if (strcmp(str, "alarm") == 0)
 		return (acl_set_extended_np(entry, ACL_EXTENDED_ALARM));
 
-	warnx("Malformed \"extended\" field.");
+	warnx("malformed ACL: invalid \"type\" field");
 
 	return (-1);
 }

==== //depot/projects/soc2008/trasz_nfs4acl/lib/libc/posix1e/acl_support_nfs4.c#6 (text+ko) ====

@@ -129,7 +129,8 @@
 
 static int
 parse_flags_verbose(const char *strp, uint32_t *var,
-    const struct flagnames_struct *flags, int *try_compact)
+    const struct flagnames_struct *flags, const char *flags_name,
+    int *try_compact)
 {
 	int i, found, ever_found = 0;
 	char *str, *flag;
@@ -152,7 +153,8 @@
 
 		if (!found) {
 			if (ever_found)
-				warnx("Invalid flag: %s.", flag);
+				warnx("malformed ACL: \"%s\" field contains "
+				    "invalid flag \"%s\"", flags_name, flag);
 			else
 				*try_compact = 1;
 			free(str);
@@ -166,7 +168,7 @@
 
 static int
 parse_flags_compact(const char *str, uint32_t *var,
-    const struct flagnames_struct *flags)
+    const struct flagnames_struct *flags, const char *flags_name)
 {
 	int i, j, found;
 
@@ -191,7 +193,8 @@
 		}
 
 		if (!found) {
-			warnx("Invalid flag: %c.", str[i]);
+			warnx("malformed ACL: \"%s\" field contains "
+			    "invalid flag \"%c\"", flags_name, str[i]);
 			return (-1);
 		}
 	}
@@ -220,9 +223,9 @@
 {
 	int error, try_compact;
 
-	error = parse_flags_verbose(str, var, a_flags, &try_compact);
+	error = parse_flags_verbose(str, var, a_flags, "flags", &try_compact);
 	if (error && try_compact)
-		error = parse_flags_compact(str, var, a_flags);
+		error = parse_flags_compact(str, var, a_flags, "flags");
 
 	return (error);
 }
@@ -232,9 +235,11 @@
 {
 	int error, try_compact;
 
-	error = parse_flags_verbose(str, var, a_access_masks, &try_compact);
+	error = parse_flags_verbose(str, var, a_access_masks,
+	    "access permissions", &try_compact);
 	if (error && try_compact)
-		error = parse_flags_compact(str, var, a_access_masks);
+		error = parse_flags_compact(str, var,
+		    a_access_masks, "access permissions");
 
 	return (error);
 }



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