dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmo-abis/+/32569 )
Change subject: e1d: get rid of strange file descriptor registered check ......................................................................
e1d: get rid of strange file descriptor registered check
When the line update happens the list.next member of the file descriptor is checked for NULL and != LLIST_POISON1. This directly tampers with the llist API and might be problematic. Also we can tell by the file descriptor number if the file descriptor is registered or not. An open file descriptor is always registered.
Change-Id: I92c426271dc5455427471030fcf0749566e4c2ee Related: OS#5983 --- M src/input/e1d.c 1 file changed, 18 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/69/32569/1
diff --git a/src/input/e1d.c b/src/input/e1d.c index e1a1526..f1b9ac0 100644 --- a/src/input/e1d.c +++ b/src/input/e1d.c @@ -410,8 +410,8 @@ struct e1inp_ts *e1i_ts = &line->ts[idx]; struct osmo_fd *bfd = &e1i_ts->driver.e1d.fd;
- /* unregister FD if it was already registered */ - if (bfd->list.next && bfd->list.next != LLIST_POISON1) + /* unregister FD if it was already registered/in use */ + if (bfd->fd >= 0) osmo_fd_unregister(bfd);
if (e1i_ts->type != E1INP_TS_TYPE_NONE && ts >= num_ts_info) {