diff --git a/src/filter.c b/src/filter.c index 7acc0d9..8502d78 100644 --- a/src/filter.c +++ b/src/filter.c @@ -2650,12 +2650,14 @@ filter_user_get(filter_t *filter, filter_rule_t *rule) } #endif /* WITHOUT_USERAUTH */ +/* + * Translates filtering rules into data structures. + * Never pass NULL as rule param. + * Otherwise, we must return NULL, but NULL retval means oom. + */ filter_t * filter_set(filter_rule_t *rule) { - if (!rule) - return NULL; - filter_t *filter = malloc(sizeof(filter_t)); if (!filter) return oom_return_na_null(); diff --git a/src/filter.h b/src/filter.h index 98b694a..7233cc7 100644 --- a/src/filter.h +++ b/src/filter.h @@ -285,7 +285,7 @@ filter_keyword_t *filter_keyword_find(filter_t *, filter_user_t *, char *) NONNU filter_user_t *filter_user_find(filter_t *, char *) NONNULL(1,2); #endif /* !WITHOUT_USERAUTH */ int filter_rule_set(opts_t *, const char *, char *, int) NONNULL(1,2,3) WUNRES; -filter_t *filter_set(filter_rule_t *); +filter_t *filter_set(filter_rule_t *) NONNULL(1) WUNRES; #endif /* !FILTER_H */