This was the compiler warning:
term-utils/wall.c:156:39: warning: passing 'gid_t *const' (aka 'unsigned int *const') to
parameter of type 'int *' converts between pointers to integer types with different sign
[-Wpointer-sign]
rc = getgrouplist(login, pw->pw_gid, buf->groups, &ngroups);
^~~~~~~~~~~
/usr/include/unistd.h:653:43: note: passing argument to parameter here
int getgrouplist(const char *, int, int *, int *);
^
Reported-by: Ruediger Meier <ruediger.meier@ga-group.nl>
Signed-off-by: Karel Zak <kzak@redhat.com>
struct group_workspace {
gid_t requested_group;
int ngroups;
+
+/* getgrouplist() on OSX takes int* not gid_t* */
+#ifdef __APPLE__
+ int *groups;
+#else
gid_t *groups;
+#endif
};
static gid_t get_group_gid(const char *optarg)
}
for (; ngroups >= 0; --ngroups) {
- if (buf->requested_group == buf->groups[ngroups])
+ if (buf->requested_group == (gid_t) buf->groups[ngroups])
return 1;
}