- LOG(log_debug, logtype_afpd, "login: supplementary groups: %s", print_groups(ngroups, groups));
+ if (ngroups > 0) {
+ #define GROUPSTR_BUFSIZE 1024
+ char groupsstr[GROUPSTR_BUFSIZE];
+ char *s = groupsstr;
+ int j = GROUPSTR_BUFSIZE;
+
+ int n = snprintf(groupsstr, GROUPSTR_BUFSIZE, "%u", groups[0]);
+ j -= n;
+ s += n;
+
+ for (int i = 1; i < ngroups; i++) {
+ n = snprintf(s, j, ", %u", groups[i]);
+ if (n == j) {
+ /* Buffer full */
+ LOG(log_debug, logtype_afpd, "login: group string buffer overflow");
+ break;
+ }
+ j -= n;
+ s += n;
+ }
+ LOG(log_debug, logtype_afpd, "login: %u supplementary groups: %s", ngroups, groupsstr);
+ }