aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Couzens <lynxis@fe80.eu>2021-07-06 10:56:55 +0200
committerAlexander Couzens <lynxis@fe80.eu>2021-07-06 11:21:30 +0200
commit56287d26fe2725148afcd02863621cbc8ae09388 (patch)
treedef16f864678ddb799e19ebbfe75119acfd2fd7f
parent31cf166511d5c97fb8839bb729995ea636a88f20 (diff)
gprs_ns2: use gprs_ns2_free_bind() to clean up a bind
gprs_ns2_free_bind() takes care of all required steps to clean up a bind. The driver->free_bind() operation only cleans up the driver internal state but not NSVCs and other generic things. Fixes a crash when free'ing a bind from the vty which has active NSVCs. Related: OS#5195 Change-Id: I0a2ad22905bcacb929b9b5f5b034af0da3081826
-rw-r--r--src/gb/gprs_ns2_vty.c6
-rw-r--r--tests/gb/gprs_ns2_vty.vty4
2 files changed, 7 insertions, 3 deletions
diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c
index 705b60ee..2f540c21 100644
--- a/src/gb/gprs_ns2_vty.c
+++ b/src/gb/gprs_ns2_vty.c
@@ -423,7 +423,7 @@ DEFUN(cfg_no_ns_bind, cfg_no_ns_bind_cmd,
vty_bind_free(vbind);
bind = gprs_ns2_bind_by_name(vty_nsi, name);
if (bind)
- bind->driver->free_bind(bind);
+ gprs_ns2_free_bind(bind);
return CMD_SUCCESS;
}
@@ -678,7 +678,7 @@ DEFUN(cfg_no_ns_bind_listen, cfg_no_ns_bind_listen_cmd,
return CMD_ERR_NOTHING_TODO;
OSMO_ASSERT(bind->ll == GPRS_NS2_LL_UDP);
- bind->driver->free_bind(bind);
+ gprs_ns2_free_bind(bind);
return CMD_SUCCESS;
}
@@ -939,7 +939,7 @@ DEFUN(cfg_no_ns_bind_fr, cfg_no_ns_bind_fr_cmd,
return CMD_WARNING;
}
- bind->driver->free_bind(bind);
+ gprs_ns2_free_bind(bind);
return CMD_SUCCESS;
}
diff --git a/tests/gb/gprs_ns2_vty.vty b/tests/gb/gprs_ns2_vty.vty
index 4589f96f..458e2c83 100644
--- a/tests/gb/gprs_ns2_vty.vty
+++ b/tests/gb/gprs_ns2_vty.vty
@@ -83,3 +83,7 @@ OsmoNSdummy(config-ns-nse)# ip-sns-remote 127.0.0.1 22222
OsmoNSdummy(config-ns-nse)# ip-sns-remote 127.0.0.1 22222
Specified SNS endpoint already part of the NSE.
OsmoNSdummy(config-ns-nse)# exit
+OsmoNSdummy(config-ns)# no bind abc
+OsmoNSdummy(config-ns)# no bind abc77
+bind abc77 does not exist!
+OsmoNSdummy(config-ns)# exit