pespin has submitted this change. (
https://gerrit.osmocom.org/c/osmo-bts/+/29576 )
Change subject: osmux: Close osmux socket when bts is freed
......................................................................
osmux: Close osmux socket when bts is freed
Related: SYS#5987
Change-Id: Ibd3faa33b28d45048c340b177f13d5685f41a784
---
M src/common/osmux.c
1 file changed, 9 insertions(+), 3 deletions(-)
Approvals:
fixeria: Looks good to me, but someone else must approve
osmith: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/src/common/osmux.c b/src/common/osmux.c
index 498fe24..3f137e5 100644
--- a/src/common/osmux.c
+++ b/src/common/osmux.c
@@ -25,6 +25,7 @@
#include <stdint.h>
#include <stdbool.h>
#include <inttypes.h>
+#include <unistd.h>
#include <osmocom/core/logging.h>
#include <osmocom/core/utils.h>
@@ -288,14 +289,19 @@
bts->osmux.batch_size = OSMUX_BATCH_DEFAULT_MAX;
bts->osmux.dummy_padding = false;
INIT_LLIST_HEAD(&bts->osmux.osmux_handle_list);
+ bts->osmux.fd.fd = -1;
return 0;
}
void bts_osmux_release(struct gsm_bts *bts)
{
- /* FIXME: not needed? YES,we probably need to iterare over
- bts->osmux.osmux_handle_list and free everything there, see
- osmux_handle_put() */
+ /* bts->osmux.osmux_handle_list should end up empty when all lchans are
+ * released/freed upon talloc_free(bts). */
+ /* If bts->osmux.fd.data is NULL, bts is being released/freed without
+ * passing bts_osmux_init()/through bts_osmux_open() and hence fd is
+ * probably 0 (memzeored). Avoid accessing it if not initialized. */
+ if (bts->osmux.fd.fd != -1 && bts->osmux.fd.data)
+ osmo_fd_close(&bts->osmux.fd);
}
/* Called after config file read, start services */
--
To view, visit
https://gerrit.osmocom.org/c/osmo-bts/+/29576
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: Ibd3faa33b28d45048c340b177f13d5685f41a784
Gerrit-Change-Number: 29576
Gerrit-PatchSet: 5
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-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged