From: Alberto Leiva Popper Date: Mon, 4 May 2026 23:43:49 +0000 (-0600) Subject: Patch memory leaks X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=c1a8acd1a5052ab66ea2df2255fd31ad28637e0f;p=thirdparty%2FFORT-validator.git Patch memory leaks --- diff --git a/src/log.c b/src/log.c index a67c0ca2..925296ec 100644 --- a/src/log.c +++ b/src/log.c @@ -66,7 +66,7 @@ static pthread_mutex_t logck; * aware that pthread_mutex_lock() can return error codes, which shouldn't * prevent critical stack traces from printing.) */ -static void +void print_stack_trace(char const *title) { #ifdef BACKTRACE_ENABLED diff --git a/src/log.h b/src/log.h index 57b4b0fa..ae978308 100644 --- a/src/log.h +++ b/src/log.h @@ -101,6 +101,8 @@ __dead void enomem_panic(void); /* Programming errors */ __dead void pr_crit(const char *, ...) CHECK_FORMAT(1, 2); +void print_stack_trace(char const *); + int incidence(enum incidence_id, const char *, ...) CHECK_FORMAT(2, 3); /* diff --git a/src/rtr/db/delta.c b/src/rtr/db/delta.c index c5f96047..d248b926 100644 --- a/src/rtr/db/delta.c +++ b/src/rtr/db/delta.c @@ -81,6 +81,12 @@ deltas_refget(struct deltas *deltas) atomic_fetch_add(&deltas->references, 1); } +static void +clean_aspa(struct _delta_aspa *da) +{ + aspa_refput(da->aspa); +} + void deltas_refput(struct deltas *deltas) { @@ -95,8 +101,8 @@ deltas_refput(struct deltas *deltas) deltas_v6_cleanup(&deltas->v6.removes, NULL); deltas_rk_cleanup(&deltas->rk.adds, NULL); deltas_rk_cleanup(&deltas->rk.removes, NULL); - deltas_aspa_cleanup(&deltas->aspa.adds, NULL); - deltas_aspa_cleanup(&deltas->aspa.removes, NULL); + deltas_aspa_cleanup(&deltas->aspa.adds, clean_aspa); + deltas_aspa_cleanup(&deltas->aspa.removes, clean_aspa); free(deltas); } }