-/* $OSSEC, os_match_free_pattern.c, v0.1, 2006/04/18, Daniel B. Cid$ */
-
/* Copyright (C) 2009 Trend Micro Inc.
* All right reserved.
*
* Foundation
*/
-
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "os_regex_internal.h"
-/** int OSMatch_FreePattern(OSMatch *reg) v0.1
- * Release all the memory created by the compilation/executation
- * phases.
- * Returns void.
- */
+/* Release all the memory created by the compilation/execution phases */
void OSMatch_FreePattern(OSMatch *reg)
{
- /* Freeing the patterns */
- if(reg->patterns)
- {
- char **pattern = reg->patterns;
- while(*pattern)
- {
- if(*pattern)
- free(*pattern);
- pattern++;
- }
-
- free(reg->patterns);
- free(reg->size);
- free(reg->match_fp);
-
- reg->patterns = NULL;
- reg->size = NULL;
- reg->match_fp = NULL;
+ /* Free the match data */
+ if (reg->match_data) {
+ pcre2_match_data_free(reg->match_data);
+ reg->match_data = NULL;
+ }
+
+ /* Free the regex */
+ if (reg->regex) {
+ pcre2_code_free(reg->regex);
+ reg->regex = NULL;
+ }
+
+ /* Free the patter, */
+ if (reg->pattern) {
+ free(reg->pattern);
+ reg->pattern = NULL;
}
return;
}
-
-/* EOF */