pespin has submitted this change. ( 
https://gerrit.osmocom.org/c/libosmo-sigtran/+/40193?usp=email )

Change subject: asp: Make sure asp->{client,server} is nulled before destroy 
callback
......................................................................

asp: Make sure asp->{client,server} is nulled before destroy callback

disconnect_cb() in case of stream_cli and closed_cb() in case of
stream_srv may call some libosmo-sigtran code. Make sure we don't access
the pointer anymore in that case for safety.

Change-Id: I3f0774eac630c8bc7e9a10f874e1c72763fd14a0
---
M src/osmo_ss7_asp.c
1 file changed, 7 insertions(+), 2 deletions(-)

Approvals:
  Jenkins Builder: Verified
  laforge: Looks good to me, approved
  osmith: Looks good to me, but someone else must approve




diff --git a/src/osmo_ss7_asp.c b/src/osmo_ss7_asp.c
index c054369..4044003 100644
--- a/src/osmo_ss7_asp.c
+++ b/src/osmo_ss7_asp.c
@@ -686,22 +686,27 @@
  * announce disconnection to upper layers. */
 int ss7_asp_disconnect_stream(struct osmo_ss7_asp *asp)
 {
+       struct osmo_stream_cli *cli;
+       struct osmo_stream_srv *srv;
+
        /* First tear down previous state if existing: */
        if (asp->cfg.is_server) {
                /* We are in server mode now */
                if (asp->client) {
                        /* if we previously were in client mode,
                         * destroy it */
-                       osmo_stream_cli_destroy(asp->client);
+                       cli = asp->client;
                        asp->client = NULL;
+                       osmo_stream_cli_destroy(cli);
                }
        } else {
                /* We are in client mode now */
                if (asp->server) {
                        /* if we previously were in server mode,
                         * destroy it */
-                       osmo_stream_srv_destroy(asp->server);
+                       srv = asp->server;
                        asp->server = NULL;
+                       osmo_stream_srv_destroy(srv);
                }
                if (asp->client) {
                        /* Make sure we close the previous stream before 
starting a new one: */

--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/40193?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: merged
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: I3f0774eac630c8bc7e9a10f874e1c72763fd14a0
Gerrit-Change-Number: 40193
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pes...@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: daniel <dwillm...@sysmocom.de>
Gerrit-Reviewer: fixeria <vyanits...@sysmocom.de>
Gerrit-Reviewer: laforge <lafo...@osmocom.org>
Gerrit-Reviewer: osmith <osm...@sysmocom.de>
Gerrit-Reviewer: pespin <pes...@sysmocom.de>

Reply via email to