Lines Matching refs:data
150 static void get_either_iter(struct iter_data *data, char *name)
154 match = (step(name, data->expbuf) != 0);
157 match = (regexec(&data->preg, name, 0, NULL, 0) == 0);
163 if (data->n_names == data->sz_names) {
164 int new_sz = data->sz_names * 2;
165 char **new_names = realloc(data->names,
168 data->names = new_names;
169 data->sz_names = new_sz;
171 data->malloc_failed = 1;
176 data->names[data->n_names++] = name;
181 static void get_pols_iter(void *data, osa_policy_ent_t entry)
187 get_either_iter(data, name);
190 static void get_princs_iter(void *data, krb5_principal princ)
192 struct iter_data *id = (struct iter_data *) data;
197 get_either_iter(data, name);
206 struct iter_data data;
226 ((data.expbuf = compile(regexp, NULL, NULL)) == NULL)
229 ((regcomp(&data.preg, regexp, REG_NOSUB)) != 0)
241 data.n_names = 0;
242 data.sz_names = 10;
243 data.malloc_failed = 0;
244 data.names = malloc(sizeof(char *) * data.sz_names);
245 if (data.names == NULL) {
251 data.context = handle->context;
252 ret = kdb_iter_entry(handle, exp, get_princs_iter, (void *) &data);
254 ret = krb5_db_iter_policy(handle->context, exp, get_pols_iter, (void *)&data);
259 regfree(&data.preg);
261 if ( !ret && data.malloc_failed)
264 for (i = 0; i < data.n_names; i++)
265 free(data.names[i]);
266 free(data.names);
270 *princs = data.names;
271 *count = data.n_names;