/* Check if there is a match for this filter. */
for (i = 0; i < TR_MAX_FILTER_LINES; i++) {
for (j = 0; j < TR_MAX_FILTER_SPECS; j++) {
- if (tr_prefix_wildcard_match(rp_realm->buf, rpp_filter->lines[i]->specs[j]->match->buf)) {
+
+ if ((rpp_filter->lines[i]) &&
+ (rpp_filter->lines[i]->specs[j]) &&
+ (tr_prefix_wildcard_match(rp_realm->buf, rpp_filter->lines[i]->specs[j]->match->buf))) {
*out_action = rpp_filter->lines[i]->action;
*out_constraints = rpp_filter->lines[i]->constraints;
return TR_FILTER_MATCH;
(TR_FILTER_ACTION_REJECT == oaction)) {
fprintf(stderr, "tr_tids_req_handler: RP realm (%s) does not match RP Realm filter for GSS name\n", orig_req->rp_realm->buf);
tids_send_err_response(tids, orig_req, "RP Realm filter error");
+ return -1;
}
/* TBD -- add constraints to request for further forwarding. */