fixeria submitted this change.

View Change

Approvals: pespin: Looks good to me, approved Jenkins Builder: Verified
ipaccess: Reset pointer before calling stream_cli func triggering callback

The osmo_stream_cli_destroy() may trigger the disconnect_cb, which we
forward to the user through sign_link_down() callback.
Hence, the user may call e1inp_ipa_bts_rsl_close_n() again (re-entrant,
recursively) before we had time to nullify the pointer, calling
osmo_stream_cli_destroy() again.
Instead, make sure the pointer is reset bfore potentially calling the
osmo_stream_cli_destroy() to make sure to catch this scenario.

This issue was being triggered by BTS_Tests.TC_chopped_ipa_payload,
which was hitting an assert due to incorrectly calling
osmo_stream_cli_destroy() twice on a given stream_cli.

Related: OS#6729
Change-Id: I2f1da24580effab5e3dfeacb6514c3b1e3a650c9
(cherry picked from commit 8076b58f5d7d22cb5dcc82843d1793adbc9ba4e4)
---
M src/input/ipaccess.c
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/input/ipaccess.c b/src/input/ipaccess.c
index 6a7d753..44ec719 100644
--- a/src/input/ipaccess.c
+++ b/src/input/ipaccess.c
@@ -1168,8 +1168,8 @@

cli = il->ipa_cli[1 + trx_nr];
if (cli != NULL) {
- osmo_stream_cli_destroy(cli);
il->ipa_cli[1 + trx_nr] = NULL;
+ osmo_stream_cli_destroy(cli);
}
return 0;
}

To view, visit change 40171. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: libosmo-abis
Gerrit-Branch: rel-2.0.1
Gerrit-Change-Id: I2f1da24580effab5e3dfeacb6514c3b1e3a650c9
Gerrit-Change-Number: 40171
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>