diff --git a/src/filter.c b/src/filter.c index a9391dc..0c8d3e5 100644 --- a/src/filter.c +++ b/src/filter.c @@ -76,6 +76,7 @@ f2b_filter_create(f2b_config_section_t *config, const char *file) { int flags = RTLD_NOW | RTLD_LOCAL; const char *dlerr = NULL; + assert(file != NULL); assert(config != NULL); assert(config->type == t_filter); @@ -125,6 +126,8 @@ f2b_filter_create(f2b_config_section_t *config, const char *file) { config->name, param->name, param->value); } + strlcpy(filter->file, file, sizeof(filter->file)); + if (!f2b_filter_load_file(filter, file)) goto cleanup; diff --git a/src/filter.h b/src/filter.h index 352bb39..76b3565 100644 --- a/src/filter.h +++ b/src/filter.h @@ -13,6 +13,7 @@ typedef struct f2b_filter_t { void *h; void *cfg; + char file[PATH_MAX]; void *(*create) (const char *id); bool (*config) (void *cfg, const char *key, const char *value); bool (*append) (void *cfg, const char *pattern);