pespin has submitted this change. ( https://gerrit.osmocom.org/c/osmo-cbc/+/38978?usp=email )
Change subject: abis: Fix reusing link->conn while it is being destroyed
......................................................................
abis: Fix reusing link->conn while it is being destroyed
Call to osmo_stream_cli_destroy() may end up triggering disconnect_cb(),
and we don't want to attempt doing more stuff with that conn when that
happens (we were even trying to reconnect() it...).
Avoid it by marking the pointer as NULL immediatelly before calling
e1inp_sign_link_destroy().
Change-Id: I56605766af974d86610d0958f4b82e6e4ff94502
---
M src/cbsp_link.c
1 file changed, 5 insertions(+), 2 deletions(-)
Approvals:
osmith: Looks good to me, but someone else must approve
fixeria: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/src/cbsp_link.c b/src/cbsp_link.c
index 07fbadd..6b355df 100644
--- a/src/cbsp_link.c
+++ b/src/cbsp_link.c
@@ -102,6 +102,8 @@
static int cbc_cbsp_link_cli_disconnect_cb(struct osmo_stream_cli *conn)
{
struct cbc_cbsp_link *link = osmo_stream_cli_get_data(conn);
+ if (!link->conn) /* conn is being destroyed by us, we called osmo_stream_cli_destroy() */
+ return 0;
LOGPCC(link, LOGL_NOTICE, "Disconnected.\n");
LOGPCC(link, LOGL_NOTICE, "Reconnecting...\n");
osmo_stream_cli_reconnect(conn);
@@ -364,10 +366,11 @@
return;
if (link->is_client) {
- osmo_stream_cli_destroy(link->cli_conn);
+ struct osmo_stream_cli *cli_conn = link->cli_conn;
+ link->cli_conn = NULL;
+ osmo_stream_cli_destroy(cli_conn);
if (link->peer)
link->peer->link.cbsp = NULL;
- link->cli_conn = NULL;
if (link->fi)
osmo_fsm_inst_dispatch(link->fi, CBSP_LINK_E_CMD_CLOSE, NULL);
} else {
--
To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/38978?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: osmo-cbc
Gerrit-Branch: master
Gerrit-Change-Id: I56605766af974d86610d0958f4b82e6e4ff94502
Gerrit-Change-Number: 38978
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann(a)sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Attention is currently required from: daniel, laforge, pespin.
fixeria has posted comments on this change by pespin. ( https://gerrit.osmocom.org/c/osmo-cbc/+/38978?usp=email )
Change subject: abis: Fix reusing link->conn while it is being destroyed
......................................................................
Patch Set 1: Code-Review+2
--
To view, visit https://gerrit.osmocom.org/c/osmo-cbc/+/38978?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: comment
Gerrit-Project: osmo-cbc
Gerrit-Branch: master
Gerrit-Change-Id: I56605766af974d86610d0958f4b82e6e4ff94502
Gerrit-Change-Number: 38978
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillmann(a)sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: daniel <dwillmann(a)sysmocom.de>
Gerrit-Comment-Date: Fri, 29 Nov 2024 10:59:41 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
pespin has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-abis/+/38965?usp=email )
Change subject: e1_input: Fix e1i_ts pointing to old line after line_clone
......................................................................
e1_input: Fix e1i_ts pointing to old line after line_clone
Change-Id: I8f8e1fd67a63b46d59f433ad01bb2ab880cdf910
---
M src/e1_input.c
1 file changed, 4 insertions(+), 0 deletions(-)
Approvals:
Jenkins Builder: Verified
osmith: Looks good to me, but someone else must approve
fixeria: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
diff --git a/src/e1_input.c b/src/e1_input.c
index 145fccf..76adbd9 100644
--- a/src/e1_input.c
+++ b/src/e1_input.c
@@ -675,6 +675,10 @@
OSMO_ASSERT(clone->sock_path);
}
+ /* Update TS to point to the cloned line: */
+ for (unsigned int i = 0; i < line->num_ts; i++)
+ clone->ts[i].line = clone;
+
/*
* Rate counters and driver data are shared between clones. These are pointers
* to dynamic memory so we use reference counting to avoid a double-free (see OS#3137).
--
To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/38965?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: I8f8e1fd67a63b46d59f433ad01bb2ab880cdf910
Gerrit-Change-Number: 38965
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>