Merge request !1373 from 'asan-ci'

Fix some leaks and run daemon asan check in CI

https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1373
This commit is contained in:
Dan Williams
2025-06-14 16:16:16 -05:00
5 changed files with 55 additions and 8 deletions
+45 -1
View File
@@ -28,7 +28,7 @@ stages:
BUILD_QMI: true
BUILD_QRTR: true
build container:
build_container:
extends:
- .fdo.container-build@ubuntu
- .common_variables
@@ -73,6 +73,7 @@ verify-dco:
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
needs: []
only:
- merge_requests
script: |
@@ -89,6 +90,8 @@ verify-dco:
build-no-qmi:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
@@ -107,6 +110,8 @@ build-no-qmi:
build-qmi-qrtr-no-mbim:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
@@ -124,6 +129,8 @@ build-qmi-qrtr-no-mbim:
build-qmi-no-qrtr-no-mbim:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
@@ -142,6 +149,8 @@ build-qmi-no-qrtr-no-mbim:
build-no-qmi-no-mbim:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
@@ -162,6 +171,8 @@ build-no-qmi-no-mbim:
build-no-qmi-no-mbim-no-tests:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
@@ -181,6 +192,8 @@ build-no-qmi-no-mbim-no-tests:
build-no-deprecated:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
@@ -201,6 +214,8 @@ build-no-deprecated:
build-no-suspend-resume:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
@@ -217,6 +232,8 @@ build-no-suspend-resume:
build-suspend-resume-powerd:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
@@ -233,6 +250,8 @@ build-suspend-resume-powerd:
build-single-plugins:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
@@ -249,6 +268,8 @@ build-single-plugins:
build-single-plugins-builtin:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
@@ -265,6 +286,8 @@ build-single-plugins-builtin:
build-debug:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
@@ -283,6 +306,8 @@ build-debug:
build-release:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
@@ -301,6 +326,8 @@ build-release:
build-release-builtin:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
@@ -316,3 +343,20 @@ build-release-builtin:
- ninja -C build test
- ninja -C build install
- ninja -C build uninstall
build-asan:
stage: build
needs:
- build_container
extends:
- .fdo.distribution-image@ubuntu
- .common_variables
only:
- main
- merge_requests
- tags
- schedules
script:
- *prepare_deps
- meson setup build-asan -Db_sanitize=address -Dwerror=true -Dgtk_doc=false -Dqmi=true -Dqrtr=true -Dmbim=true
- meson test -C build-asan --suite=daemon --timeout-multiplier=5 --print-errorlogs
-1
View File
@@ -766,7 +766,6 @@ static void
send_dtmf_context_free (SendDtmfContext *ctx)
{
send_dtmf_context_clear_timeout (ctx);
g_ptr_array_foreach (ctx->dtmfs, (GFunc) g_free, NULL);
g_ptr_array_free (ctx->dtmfs, TRUE);
g_assert (!ctx->saved_error);
g_slice_free (SendDtmfContext, ctx);
+2 -1
View File
@@ -3162,6 +3162,7 @@ mm_3gpp_parse_cscb_response (const char *response, GError **error)
goto out;
}
g_free (str);
str = g_match_info_fetch (match_info, 2);
intervals = g_strsplit (str, ",", -1);
for (i = 0; intervals[i]; i++) {
@@ -5895,7 +5896,7 @@ mm_dtmf_split (const gchar *dtmf)
const gchar *p = dtmf;
GString *cur = NULL;
array = g_ptr_array_new ();
array = g_ptr_array_new_with_free_func (g_free);
while (*p) {
if (*p == MM_CALL_DTMF_PAUSE_CHAR) {
+5 -2
View File
@@ -1,6 +1,9 @@
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2021 Iñigo Martinez <inigomartinez@gmail.com>
test_env = environment()
test_env.set('ASAN_OPTIONS', 'fast_unwind_on_malloc=0')
test_units = {
'at-serial-port': libport_dep,
'cbm-part': libhelpers_dep,
@@ -47,7 +50,7 @@ foreach test_unit, test_deps: test_units
c_args: c_args,
)
test(test_name, exe)
test(test_name, exe, suite: 'daemon', env: test_env)
endforeach
# base call test
@@ -59,7 +62,7 @@ exe = executable(
c_args: c_args,
)
test('test-base-call', exe)
test('test-base-call', exe, suite: 'daemon', env: test_env)
if get_option('fuzzer')
+3 -3
View File
@@ -4491,7 +4491,7 @@ static void
common_test_cscb_response (const gchar *response, TestCscb *expected)
{
GError *error = NULL;
GArray *result;
g_autoptr(GArray) result = NULL;
g_debug ("Testing '%s'", response);
result = mm_3gpp_parse_cscb_response (response, &error);
@@ -4726,7 +4726,7 @@ test_emergency_numbers (void)
for (i = 0; i < G_N_ELEMENTS (emergency_numbers_tests); i++) {
GStrv numbers;
GError *error = NULL;
g_autoptr(GError) error = NULL;
guint j;
g_debug (" testing %s...", emergency_numbers_tests[i].raw);
@@ -5138,7 +5138,7 @@ static void
test_dtmf_split (gpointer user_data)
{
DtmfTestData *td = user_data;
GPtrArray *split;
g_autoptr(GPtrArray) split = NULL;
guint expected_len;
guint i;