summaryrefslogtreecommitdiffstats
path: root/compiler-rt/test/sanitizer_common/TestCases/NetBSD/getgroupmembership.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler-rt/test/sanitizer_common/TestCases/NetBSD/getgroupmembership.cc')
-rw-r--r--compiler-rt/test/sanitizer_common/TestCases/NetBSD/getgroupmembership.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/compiler-rt/test/sanitizer_common/TestCases/NetBSD/getgroupmembership.cc b/compiler-rt/test/sanitizer_common/TestCases/NetBSD/getgroupmembership.cc
new file mode 100644
index 00000000000..ee27ad6cf36
--- /dev/null
+++ b/compiler-rt/test/sanitizer_common/TestCases/NetBSD/getgroupmembership.cc
@@ -0,0 +1,30 @@
+// RUN: %clangxx -O0 -g %s -o %t && %run %t
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <grp.h>
+
+int main(void) {
+ gid_t *groups;
+ gid_t nobody;
+ int ngroups;
+ int maxgrp;
+
+ maxgrp = sysconf(_SC_NGROUPS_MAX);
+ groups = (gid_t *)malloc(maxgrp * sizeof(gid_t));
+ if (!groups)
+ exit(1);
+
+ if (gid_from_group("nobody", &nobody) == -1)
+ exit(1);
+
+ if (getgroupmembership("nobody", nobody, groups, maxgrp, &ngroups))
+ exit(1);
+
+ if (groups && ngroups) {
+ free(groups);
+ exit(0);
+ }
+
+ return -1;
+}
OpenPOWER on IntegriCloud