aboutsummaryrefslogtreecommitdiff
path: root/src/regex/test_regex_eval_api.c
diff options
context:
space:
mode:
authorMaximilian Szengel <gnunet@maxsz.de>2012-09-17 14:32:05 +0000
committerMaximilian Szengel <gnunet@maxsz.de>2012-09-17 14:32:05 +0000
commit0023bacc0565ad444e8facefd1db9b622a8e07d4 (patch)
tree7ea369f429480af3b4e929839b5b487aa04064de /src/regex/test_regex_eval_api.c
parent290598582085e0b442caac7a94dcc6e940118e84 (diff)
coverity
Diffstat (limited to 'src/regex/test_regex_eval_api.c')
-rw-r--r--src/regex/test_regex_eval_api.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/regex/test_regex_eval_api.c b/src/regex/test_regex_eval_api.c
index 7538a25d8a..35eef6d29e 100644
--- a/src/regex/test_regex_eval_api.c
+++ b/src/regex/test_regex_eval_api.c
@@ -71,7 +71,7 @@ test_random (unsigned int rx_length, unsigned int max_str_len,
regmatch_t matchptr[1];
char error[200];
int result;
- char *canonical_regex;
+ char *canonical_regex = NULL;
/* At least one string is needed for matching */
GNUNET_assert (str_count > 0);
@@ -96,7 +96,8 @@ test_random (unsigned int rx_length, unsigned int max_str_len,
if (NULL == dfa)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Constructing DFA failed\n");
- return -1;
+ GNUNET_free (matching_str);
+ goto error;
}
eval = GNUNET_REGEX_eval (dfa, matching_str);
@@ -109,7 +110,7 @@ test_random (unsigned int rx_length, unsigned int max_str_len,
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Could not compile regex using regcomp: %s\n", rand_rx);
- return -1;
+ goto error;
}
eval_check = regexec (&rx, matching_str, 1, matchptr, 0);
@@ -127,7 +128,7 @@ test_random (unsigned int rx_length, unsigned int max_str_len,
if (NULL == dfa)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Constructing DFA failed\n");
- return -1;
+ goto error;
}
eval_canonical = GNUNET_REGEX_eval (dfa, matching_str);
@@ -138,7 +139,7 @@ test_random (unsigned int rx_length, unsigned int max_str_len,
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Could not compile regex using regcomp: %s\n",
canonical_regex);
- return -1;
+ goto error;
}
eval_canonical_check = regexec (&rx, matching_str, 1, matchptr, 0);
@@ -169,6 +170,12 @@ test_random (unsigned int rx_length, unsigned int max_str_len,
GNUNET_free (canonical_regex);
return result;
+
+error:
+ GNUNET_free_non_null (matching_str);
+ GNUNET_free_non_null (rand_rx);
+ GNUNET_free_non_null (canonical_regex);
+ return -1;
}
/**