From 397a0e09d999b87f4a3d8c15e562ff59bcec0ad9 Mon Sep 17 00:00:00 2001 From: Shane Alcock Date: Thu, 21 Apr 2022 11:38:33 +1200 Subject: [PATCH 1/6] Fix segfault when callid and SDP ident mismatch occurs The error message was missing a parameter, because it had never been triggered until now :o --- src/collector/collector_sync_voip.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/collector/collector_sync_voip.c b/src/collector/collector_sync_voip.c index f664f0be..318f8d65 100644 --- a/src/collector/collector_sync_voip.c +++ b/src/collector/collector_sync_voip.c @@ -1318,6 +1318,7 @@ static int process_sip_invite(collector_sync_voip_t *sync, char *callid, if (sync->log_bad_sip) { logger(LOG_INFO, "OpenLI: mismatched CINs for call %s and SDP identifier %u:%u:%s:%s", + callid, sdpo->sessionid, sdpo->version, sdpo->username, sdpo->address); } From 638eff1c2aa3480771817b3214c094b3da5caf4c Mon Sep 17 00:00:00 2001 From: Shane Alcock Date: Fri, 27 May 2022 10:50:20 +1200 Subject: [PATCH 2/6] Fix bug where 'sipignoresdpo' option was sometimes ignored This would cause an SDP mismatch error to be reported when it should have been ignored. --- src/collector/collector_sync_voip.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/collector/collector_sync_voip.c b/src/collector/collector_sync_voip.c index 318f8d65..899a3b44 100644 --- a/src/collector/collector_sync_voip.c +++ b/src/collector/collector_sync_voip.c @@ -1309,8 +1309,12 @@ static int process_sip_invite(collector_sync_voip_t *sync, char *callid, HASH_FIND(hh_callid, vint->cin_callid_map, callid, strlen(callid), findcin); - HASH_FIND(hh_sdp, vint->cin_sdp_map, sdpo, sizeof(sip_sdp_identifier_t), - findsdp); + if (!sync->ignore_sdpo_matches) { + HASH_FIND(hh_sdp, vint->cin_sdp_map, sdpo, + sizeof(sip_sdp_identifier_t), findsdp); + } else { + findsdp = NULL; + } if (findcin) { if (findsdp) { @@ -1332,8 +1336,10 @@ static int process_sip_invite(collector_sync_voip_t *sync, char *callid, vshared = findcin->shared; iritype = ETSILI_IRI_CONTINUE; - } else if (findsdp && !sync->ignore_sdpo_matches) { - /* New call ID but already seen this session */ + } else if (findsdp) { + /* New call ID but already seen this session from another + * call leg + */ update_cin_callid_map(&(vint->cin_callid_map), callid, findsdp->shared, findsdp->username, findsdp->realm); vshared = findsdp->shared; From e20742773434aab4533553bdedfb0ebe2501c227 Mon Sep 17 00:00:00 2001 From: Shane Alcock Date: Wed, 15 Jun 2022 10:23:49 +1200 Subject: [PATCH 3/6] Packaging: don't depend on dh-systemd on Ubuntu 22.04 --- debpkg-setup.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/debpkg-setup.sh b/debpkg-setup.sh index 6cdaf4cd..dd15f2ef 100755 --- a/debpkg-setup.sh +++ b/debpkg-setup.sh @@ -40,6 +40,10 @@ case ${DISTRO} in sed -i 's/ dh-systemd (>=1.5),//' debian/control ;; + jammy ) + sed -i 's/ dh-systemd (>=1.5),//' debian/control + ;; + bionic ) apt-get install -y debhelper -t bionic-backports ;; From 2f89945dc2b52b720667eda40c4f4054c23d1a0d Mon Sep 17 00:00:00 2001 From: Shane Alcock Date: Wed, 15 Jun 2022 10:28:40 +1200 Subject: [PATCH 4/6] Bump version to 1.0.15 Update distros for packaging: * added Ubuntu 22.04 * removed Fedora 34 * added Fedora 36 --- .github/workflows/deb-build.yaml | 1 + .github/workflows/rpm-build.yaml | 4 ++-- README.md | 2 +- configure.ac | 2 +- debian/changelog | 8 ++++++++ rpm/openli.spec | 5 ++++- 6 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deb-build.yaml b/.github/workflows/deb-build.yaml index 67ba5a27..8c42ec04 100644 --- a/.github/workflows/deb-build.yaml +++ b/.github/workflows/deb-build.yaml @@ -21,6 +21,7 @@ jobs: - "debian:bullseye" - "ubuntu:bionic" - "ubuntu:focal" + - "ubuntu:jammy" steps: - name: Checkout repo diff --git a/.github/workflows/rpm-build.yaml b/.github/workflows/rpm-build.yaml index 19bd091a..67962868 100644 --- a/.github/workflows/rpm-build.yaml +++ b/.github/workflows/rpm-build.yaml @@ -18,9 +18,9 @@ jobs: target: - "centos:7" - "fedora:35" - - "fedora:34" + - "fedora:36" - "rockylinux:8.5" - - "almalinux:8.4" + - "almalinux:8.5" steps: diff --git a/README.md b/README.md index 8def6c06..dc6ee7b2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ OpenLI -- open source ETSI-compliant Lawful Intercept software -Version: 1.0.14 +Version: 1.0.15 --------------------------------------------------------------------------- diff --git a/configure.ac b/configure.ac index 8bc2423a..10f37746 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ # Super primitive configure script -AC_INIT(openli, 1.0.14, salcock@waikato.ac.nz) +AC_INIT(openli, 1.0.15, salcock@waikato.ac.nz) AM_INIT_AUTOMAKE([subdir-objects]) AC_CONFIG_SRCDIR(src/collector/collector.c) diff --git a/debian/changelog b/debian/changelog index 90b9d45a..2879bfb3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +openli (1.0.15-1) unstable; urgency=medium + + * Fix crash when SDP identities are shared amongst multiple Call-IDs. + * Fix bad logic that meant `sipignoresdpo` option was ignored in certain + situations. + + -- Shane Alcock Wed, 15 Jun 2022 10:27:39 +1200 + openli (1.0.14-1) unstable; urgency=medium * Fix bug where VoIP intercepts would stop collecting media traffic diff --git a/rpm/openli.spec b/rpm/openli.spec index 062be281..64dc72c9 100644 --- a/rpm/openli.spec +++ b/rpm/openli.spec @@ -1,5 +1,5 @@ Name: openli -Version: 1.0.14 +Version: 1.0.15 Release: 1%{?dist} Summary: Software for performing ETSI-compliant lawful intercept @@ -232,6 +232,9 @@ fi %changelog +* Wed Jun 15 2022 Shane Alcock - 1.0.15-1 +- Updated for 1.0.15 release + * Wed Apr 13 2022 Shane Alcock - 1.0.14-1 - Updated for 1.0.14 release From 38035184169205ab081d1c48bd7317b198970321 Mon Sep 17 00:00:00 2001 From: Shane Alcock Date: Wed, 15 Jun 2022 10:34:40 +1200 Subject: [PATCH 5/6] Bump libtrace dependency to 4.0.19 This will ensure that OpenLI has DPDK 21.11 compatibility --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index d7f00f06..805ea25c 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Section: net Priority: optional Maintainer: Shane Alcock Build-Depends: debhelper-compat (= 12), dh-autoreconf, dh-systemd (>=1.5), - libtrace4-dev (>= 4.0.18), libyaml-dev, uthash-dev, libwandder2-dev (>=2.0.4), + libtrace4-dev (>= 4.0.19), libyaml-dev, uthash-dev, libwandder2-dev (>=2.0.4), libjudy-dev, libzmq3-dev, libgoogle-perftools-dev, libosip2-dev, libssl1.0-dev (>=1.0.2r) | libssl-dev, librabbitmq-dev, libmicrohttpd-dev, libjson-c-dev, libsqlcipher-dev From fcf4e3d4381cbac011da4f4521a6ac569e0f401f Mon Sep 17 00:00:00 2001 From: Shane Alcock Date: Wed, 15 Jun 2022 10:35:42 +1200 Subject: [PATCH 6/6] Repeat of previous commit, but for RPMs --- rpm/openli.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpm/openli.spec b/rpm/openli.spec index 64dc72c9..57595597 100644 --- a/rpm/openli.spec +++ b/rpm/openli.spec @@ -14,7 +14,7 @@ BuildRequires: bison BuildRequires: doxygen BuildRequires: flex BuildRequires: libyaml-devel -BuildRequires: libtrace4-devel >= 4.0.17 +BuildRequires: libtrace4-devel >= 4.0.19 BuildRequires: Judy-devel BuildRequires: uthash-devel BuildRequires: libwandder2-devel >= 2.0.4