This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Stefan Sperling gerrit-no-reply at lists.osmocom.orgStefan Sperling has uploaded this change for review. ( https://gerrit.osmocom.org/11705 Change subject: detect freed connections in osmo_stream_srv_read() ...................................................................... detect freed connections in osmo_stream_srv_read() While we are processing a read event, the connection's callback might free the connection. Check for this and don't attempt to process further events on an already freed connection. Change-Id: I0a9c7d8e3263c73440f7084dbb1792a4ca5038f0 Related: OS#3685 Depends: g#11704 (for libosmo-sccp) --- M src/stream.c 1 file changed, 12 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/05/11705/1 diff --git a/src/stream.c b/src/stream.c index 6eb2313..7fa69ca 100644 --- a/src/stream.c +++ b/src/stream.c @@ -784,19 +784,21 @@ int flags; }; -static void osmo_stream_srv_read(struct osmo_stream_srv *conn) +static int osmo_stream_srv_read(struct osmo_stream_srv *conn) { + int rc = 0; + LOGP(DLINP, LOGL_DEBUG, "message received\n"); if (conn->flags & OSMO_STREAM_SRV_F_FLUSH_DESTROY) { LOGP(DLINP, LOGL_DEBUG, "Connection is being flushed and closed; ignoring received message\n"); - return; + return 0; } if (conn->cb) - conn->cb(conn); + rc = conn->cb(conn); - return; + return rc; } static void osmo_stream_srv_write(struct osmo_stream_srv *conn) @@ -845,10 +847,14 @@ static int osmo_stream_srv_cb(struct osmo_fd *ofd, unsigned int what) { struct osmo_stream_srv *conn = ofd->data; + int rc; LOGP(DLINP, LOGL_DEBUG, "connected read/write\n"); - if (what & BSC_FD_READ) - osmo_stream_srv_read(conn); + if (what & BSC_FD_READ) { + rc = osmo_stream_srv_read(conn); + if (rc < 0) + return rc; + } if (what & BSC_FD_WRITE) osmo_stream_srv_write(conn); -- To view, visit https://gerrit.osmocom.org/11705 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0a9c7d8e3263c73440f7084dbb1792a4ca5038f0 Gerrit-Change-Number: 11705 Gerrit-PatchSet: 1 Gerrit-Owner: Stefan Sperling <ssperling at sysmocom.de> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181109/83aa8486/attachment.htm>