laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/36244?usp=email )
Change subject: osmo_stream_cli_send(): Drop data if client is not connected [yet]
......................................................................
osmo_stream_cli_send(): Drop data if client is not connected [yet]
The behaviour is undefined on what should happen if a stream client user
is trying to write data before the client socket is connected. In
osmo_io mode we would actually crash due to a NULL-pointer dereference.
Let's discard any sent data in this situation and print a related error log message.
This problem actually shows up with osmo-bsc Change-Id
Icce412e6ee69366c7b131c9bc1d51e8d44204917 where we convert CBSP over to
osmo_io - here in situations where a CBSP client (using stream_cli) was
previously connected but has lost its connection.
Change-Id: I18d2e8e850c23a32f5983a715fa8a18747b296cd
---
M src/stream_cli.c
1 file changed, 28 insertions(+), 0 deletions(-)
Approvals:
laforge: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/src/stream_cli.c b/src/stream_cli.c
index 8312faf..2f5339c 100644
--- a/src/stream_cli.c
+++ b/src/stream_cli.c
@@ -1003,12 +1003,20 @@
OSMO_ASSERT(cli);
OSMO_ASSERT(msg);
+ if (!osmo_stream_cli_is_connected(cli)) {
+ LOGSCLI(cli, LOGL_ERROR, "send: not connected, dropping data!\n");
+ msgb_free(msg);
+ return;
+ }
+
switch (cli->mode) {
case OSMO_STREAM_MODE_OSMO_FD:
msgb_enqueue(&cli->tx_queue, msg);
osmo_fd_write_enable(&cli->ofd);
break;
case OSMO_STREAM_MODE_OSMO_IO:
+ /* whenever osmo_stream_cli_is_connected() [see above check], we should have an iofd */
+ OSMO_ASSERT(cli->iofd);
if (cli->proto == IPPROTO_SCTP)
rc = stream_iofd_sctp_send_msgb(cli->iofd, msg, MSG_NOSIGNAL);
else
--
To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/36244?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I18d2e8e850c23a32f5983a715fa8a18747b296cd
Gerrit-Change-Number: 36244
Gerrit-PatchSet: 3
Gerrit-Owner: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged
Attention is currently required from: jolly, pespin.
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/36244?usp=email )
Change subject: osmo_stream_cli_send(): Drop data if client is not connected [yet]
......................................................................
Patch Set 2: Code-Review+2
(1 comment)
Patchset:
PS2:
merging this to resolve test regressions in ttcn3-bsc-test
--
To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/36244?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I18d2e8e850c23a32f5983a715fa8a18747b296cd
Gerrit-Change-Number: 36244
Gerrit-PatchSet: 2
Gerrit-Owner: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: jolly <andreas(a)eversberg.eu>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: jolly <andreas(a)eversberg.eu>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 12 Mar 2024 17:36:00 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmo-netif/+/36222?usp=email )
Change subject: osmo_prim_srv_send: assert prim_srv is not NULL
......................................................................
Patch Set 2:
(1 comment)
Patchset:
PS2:
> merging this to fix test regressions.
nevermind, that was the wrong patch. sorry for that ;)
--
To view, visit https://gerrit.osmocom.org/c/libosmo-netif/+/36222?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-netif
Gerrit-Branch: master
Gerrit-Change-Id: I1122a1de2c29ee46cce22cec907576719e9c3721
Gerrit-Change-Number: 36222
Gerrit-PatchSet: 2
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Comment-Date: Tue, 12 Mar 2024 17:34:46 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: laforge <laforge(a)osmocom.org>
Gerrit-MessageType: comment