Date: Tue, 6 Dec 2016 23:43:04 +0000 (UTC) From: Bryan Drewery <bdrewery@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r309659 - head/lib/libc/tests/nss Message-ID: <201612062343.uB6Nh4O9041522@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201612062343.uB6Nh4O9041522>