Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Nov 2015 11:30:17 +0000 (UTC)
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r291445 - head/usr.bin/rctl
Message-ID:  <201511291130.tATBUHFN058290@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: trasz
Date: Sun Nov 29 11:30:17 2015
New Revision: 291445
URL: https://svnweb.freebsd.org/changeset/base/291445

Log:
  User and group identifiers the rctl(8) utility receives from the kernel
  are always in numeric form; don't try to resolve them by names.  This
  speeds up rule listing with large rulesets by about 50%.
  
  MFC after:	1 month
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/usr.bin/rctl/rctl.c

Modified: head/usr.bin/rctl/rctl.c
==============================================================================
--- head/usr.bin/rctl/rctl.c	Sun Nov 29 11:28:04 2015	(r291444)
+++ head/usr.bin/rctl/rctl.c	Sun Nov 29 11:30:17 2015	(r291445)
@@ -193,7 +193,7 @@ humanize_ids(char *rule)
 	struct passwd *pwd;
 	struct group *grp;
 	const char *subject, *textid, *rest;
-	char *humanized;
+	char *end, *humanized;
 
 	subject = strsep(&rule, ":");
 	textid = strsep(&rule, ":");
@@ -206,12 +206,16 @@ humanize_ids(char *rule)
 
 	/* Replace numerical user and group ids with names. */
 	if (strcasecmp(subject, "user") == 0) {
-		id = parse_user(textid);
+		id = strtod(textid, &end);
+		if ((size_t)(end - textid) != strlen(textid))
+			errx(1, "malformed uid '%s'", textid);
 		pwd = getpwuid(id);
 		if (pwd != NULL)
 			textid = pwd->pw_name;
 	} else if (strcasecmp(subject, "group") == 0) {
-		id = parse_group(textid);
+		id = strtod(textid, &end);
+		if ((size_t)(end - textid) != strlen(textid))
+			errx(1, "malformed gid '%s'", textid);
 		grp = getgrgid(id);
 		if (grp != NULL)
 			textid = grp->gr_name;



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