messaging: Enforce just one messaging context
[Samba.git] / testsuite / smbd / sec_ctx_utils.c
blobe72292b9864d1d4a7bc8a7ef9323df8dbe12d99b
1 /*
2 Unix SMB/Netbios implementation.
3 Version 1.9.
4 Security context tests
5 Copyright (C) Tim Potter 2000
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #include "includes.h"
23 /* Keep linker happy */
25 void exit_server(char *reason) {}
27 /* Generate random list of groups */
29 void get_random_grouplist(int *ngroups, gid_t **groups)
31 int i;
33 *ngroups = random() % groups_max();
34 *groups = malloc(*ngroups * sizeof(gid_t));
36 if (!groups) {
37 printf("FAIL: malloc random grouplist\n");
38 return;
41 for (i = 0; i < *ngroups; i++) {
42 (*groups)[i] = random() % 32767;
46 /* Check a list of groups with current groups */
48 BOOL verify_current_groups(int ngroups, gid_t *groups)
50 int actual_ngroups;
51 gid_t *actual_groups;
53 actual_ngroups = getgroups(0, NULL);
54 actual_groups = (gid_t *)malloc(actual_ngroups * sizeof(gid_t));
56 getgroups(actual_ngroups, actual_groups);
58 if (actual_ngroups != ngroups) {
59 return False;
62 return memcmp(actual_groups, groups, actual_ngroups *
63 sizeof(gid_t)) == 0;