aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/regex/gnunet-daemon-regexprofiler.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/regex/gnunet-daemon-regexprofiler.c b/src/regex/gnunet-daemon-regexprofiler.c
index a542facd7e..f172011f81 100644
--- a/src/regex/gnunet-daemon-regexprofiler.c
+++ b/src/regex/gnunet-daemon-regexprofiler.c
@@ -149,7 +149,10 @@ reannounce_regex (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
char *regex = cls;
reannounce_task = GNUNET_SCHEDULER_NO_TASK;
if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
+ {
+ GNUNET_free (regex);
return;
+ }
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Announcing regex: %s\n", regex);
GNUNET_STATISTICS_update (stats_handle, "# regexes announced", 1, GNUNET_NO);
@@ -184,6 +187,8 @@ reannounce_regex (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
static void
announce_regex (const char * regex)
{
+ char *copy;
+
if (NULL == regex || 0 == strlen (regex))
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot announce empty regex\n");
@@ -191,9 +196,10 @@ announce_regex (const char * regex)
}
GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == reannounce_task);
+ copy = GNUNET_strdup (regex);
reannounce_task = GNUNET_SCHEDULER_add_delayed (announce_delay,
reannounce_regex,
- (void *) regex);
+ (void *) copy);
}