aboutsummaryrefslogtreecommitdiffstats
path: root/src/gb/gprs_ns2_internal.h
diff options
context:
space:
mode:
authorAlexander Couzens <lynxis@fe80.eu>2021-07-20 19:05:45 +0200
committerAlexander Couzens <lynxis@fe80.eu>2021-09-04 00:00:48 +0200
commitf074659520a767a37bebef3c2b1e3ab814f48bd3 (patch)
treed80d2294a5485e89b44d3f213524bd4b17214383 /src/gb/gprs_ns2_internal.h
parentgprs_ns2: gprs_ns2_free_bind() should remove itself before removing nsvcs (diff)
downloadlibosmocore-f074659520a767a37bebef3c2b1e3ab814f48bd3.tar.xz
libosmocore-f074659520a767a37bebef3c2b1e3ab814f48bd3.zip
gprs_ns2: don't use llist_for_each when freeing an element
The problem are recursive execution because a free generates an event which could allow the use to free a nsvcs while the llist_for_each() is still running. Change-Id: I902557fb6e56e6588728a46e43a9cbe3215d5c68
Diffstat (limited to 'src/gb/gprs_ns2_internal.h')
-rw-r--r--src/gb/gprs_ns2_internal.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h
index d2407f66..ca6bfb7e 100644
--- a/src/gb/gprs_ns2_internal.h
+++ b/src/gb/gprs_ns2_internal.h
@@ -354,6 +354,7 @@ struct gprs_ns2_vc *ns2_vc_alloc(struct gprs_ns2_vc_bind *bind,
enum gprs_ns2_vc_mode vc_mode,
const char *id);
+void ns2_free_nsvcs(struct gprs_ns2_nse *nse);
int ns2_bind_alloc(struct gprs_ns2_inst *nsi, const char *name,
struct gprs_ns2_vc_bind **result);