svn commit: r309659 - head/lib/libc/tests/nss
Bryan Drewery
bdrewery at FreeBSD.org
Tue Dec 6 23:43:05 UTC 2016
Author: bdrewery
Date: Tue Dec 6 23:43:04 2016
New Revision: 309659
URL: https://svnweb.freebsd.org/changeset/base/309659
Log:
Support spaces in group names.
MFC after: 2 weeks
Sponsored by: Dell EMC Isilon
Modified:
head/lib/libc/tests/nss/getgr_test.c
Modified: head/lib/libc/tests/nss/getgr_test.c
==============================================================================
--- head/lib/libc/tests/nss/getgr_test.c Tue Dec 6 22:52:45 2016 (r309658)
+++ head/lib/libc/tests/nss/getgr_test.c Tue Dec 6 23:43:04 2016 (r309659)
@@ -176,7 +176,7 @@ sdump_group(struct group *grp, char *buf
char **cp;
int written;
- written = snprintf(buffer, buflen, "%s %s %d",
+ written = snprintf(buffer, buflen, "%s:%s:%d:",
grp->gr_name, grp->gr_passwd, grp->gr_gid);
buffer += written;
if (written > buflen)
@@ -186,7 +186,8 @@ sdump_group(struct group *grp, char *buf
if (grp->gr_mem != NULL) {
if (*(grp->gr_mem) != '\0') {
for (cp = grp->gr_mem; *cp; ++cp) {
- written = snprintf(buffer, buflen, " %s",*cp);
+ written = snprintf(buffer, buflen, "%s%s",
+ cp == grp->gr_mem ? "" : ",", *cp);
buffer += written;
if (written > buflen)
return;
@@ -196,9 +197,9 @@ sdump_group(struct group *grp, char *buf
return;
}
} else
- snprintf(buffer, buflen, " nomem");
+ snprintf(buffer, buflen, "nomem");
} else
- snprintf(buffer, buflen, " (null)");
+ snprintf(buffer, buflen, "(null)");
}
static int
@@ -206,6 +207,7 @@ group_read_snapshot_func(struct group *g
{
StringList *sl;
char *s, *ps, *ts;
+ const char *sep;
int i;
printf("1 line read from snapshot:\n%s\n", line);
@@ -213,8 +215,9 @@ group_read_snapshot_func(struct group *g
i = 0;
sl = NULL;
ps = line;
+ sep = ":";
memset(grp, 0, sizeof(struct group));
- while ((s = strsep(&ps, " ")) != NULL) {
+ while ((s = strsep(&ps, sep)) != NULL) {
switch (i) {
case 0:
grp->gr_name = strdup(s);
@@ -235,6 +238,8 @@ group_read_snapshot_func(struct group *g
grp->gr_passwd = NULL;
return (-1);
}
+ /* Change to parsing groups. */
+ sep = ",";
break;
default:
More information about the svn-src-head
mailing list