return r;
while ((r = sd_bus_message_read(message, "(bs)", &is_allowlist, &pattern)) > 0) {
- _cleanup_(pattern_freep) pcre2_code *compiled_pattern = NULL;
+ _cleanup_(pcre2_code_freep) pcre2_code *compiled_pattern = NULL;
if (isempty(pattern))
continue;
STATIC_DESTRUCTOR_REGISTER(arg_namespace, freep);
STATIC_DESTRUCTOR_REGISTER(arg_output_fields, set_freep);
STATIC_DESTRUCTOR_REGISTER(arg_pattern, freep);
-STATIC_DESTRUCTOR_REGISTER(arg_compiled_pattern, pattern_freep);
+STATIC_DESTRUCTOR_REGISTER(arg_compiled_pattern, pcre2_code_freep);
STATIC_DESTRUCTOR_REGISTER(arg_image_policy, image_policy_freep);
static int parse_id_descriptor(const char *x, sd_id128_t *ret_id, int *ret_offset) {
return log_oom_debug();
STRV_FOREACH(pattern, patterns_strv) {
- _cleanup_(pattern_freep) pcre2_code *compiled_pattern = NULL;
+ _cleanup_(pcre2_code_freep) pcre2_code *compiled_pattern = NULL;
r = pattern_compile_and_log(*pattern, 0, &compiled_pattern);
if (r < 0)
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "PCRE2 support is not compiled in.");
#endif
}
-
-void *pattern_free(pcre2_code *p) {
-#if HAVE_PCRE2
- if (!p)
- return NULL;
-
- assert(pcre2_dl);
- sym_pcre2_code_free(p);
- return NULL;
-#else
- assert(p == NULL);
- return NULL;
-#endif
-}
extern DLSYM_PROTOTYPE(pcre2_get_ovector_pointer);
DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(pcre2_match_data*, sym_pcre2_match_data_free, pcre2_match_data_freep, NULL);
-DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(pcre2_code*, sym_pcre2_code_free, pcre2_code_freep, NULL);
#else
-typedef struct {} pcre2_code;
+typedef struct pcre2_code pcre2_code;
+
+static inline void sym_pcre2_code_free(pcre2_code *p) {
+ assert(!p);
+}
#endif
+DEFINE_TRIVIAL_CLEANUP_FUNC_FULL_RENAME(pcre2_code*, sym_pcre2_code_free, pcre2_code_freep, NULL);
+
extern const struct hash_ops pcre2_code_hash_ops_free;
typedef enum PatternCompileCase {
int pattern_compile_and_log(const char *pattern, PatternCompileCase case_, pcre2_code **ret);
int pattern_matches_and_log(pcre2_code *compiled_pattern, const char *message, size_t size, size_t *ret_ovec);
-void *pattern_free(pcre2_code *p);
-
-DEFINE_TRIVIAL_CLEANUP_FUNC(pcre2_code*, pattern_free);
int dlopen_pcre2(void);