From 5888949fa3da666cd81e41ce305f4e137eddaf4a Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Tue, 20 May 2025 09:56:36 -0500 Subject: modem-helpers: handle spaces in +CPMS query response Fixes: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/990 Signed-off-by: Dan Williams --- src/mm-modem-helpers.c | 2 +- src/tests/test-modem-helpers.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c index f56fe5ac..926b1997 100644 --- a/src/mm-modem-helpers.c +++ b/src/mm-modem-helpers.c @@ -3335,7 +3335,7 @@ mm_3gpp_parse_cpms_test_response (const gchar *reply, * +CPMS: ,,,,,, ,, */ -#define CPMS_QUERY_REGEX "\\+CPMS:\\s*\"(?P.*)\",[0-9]+,[0-9]+,\"(?P.*)\",[0-9]+,[0-9]+,\"(?P.*)\",[0-9]+,[0-9]" +#define CPMS_QUERY_REGEX "\\+CPMS:\\s*\"(?P.*)\",\\s*[0-9]+,\\s*[0-9]+,\\s*\"(?P.*)\",\\s*[0-9]+,\\s*[0-9]+,\\s*\"(?P.*)\",\\s*[0-9]+,\\s*[0-9]" gboolean mm_3gpp_parse_cpms_query_response (const gchar *reply, diff --git a/src/tests/test-modem-helpers.c b/src/tests/test-modem-helpers.c index 5ed5721d..a3a42ad8 100644 --- a/src/tests/test-modem-helpers.c +++ b/src/tests/test-modem-helpers.c @@ -3330,7 +3330,7 @@ CpmsQueryTest cpms_query_test[] = { {"+CPMS: \"SM\",100,100,\"SR\",5,10,\"TA\",1,100", 1, 4}, {"+CPMS: \"XX\",100,100,\"BM\",5,10,\"TA\",1,100", 0, 5}, {"+CPMS: \"XX\",100,100,\"YY\",5,10,\"TA\",1,100", 0, 0}, - {NULL, 0, 0} + {"+CPMS: \"MT\", 0, 100, \"MT\", 0, 100, \"MT\", 0, 100", 3, 3}, }; static void @@ -3339,13 +3339,14 @@ test_cpms_query_response (void *f, gpointer d) { MMSmsStorage mem2; gboolean ret; GError *error = NULL; - int i; + guint i; - for (i = 0; cpms_query_test[i].query != NULL; i++){ + for (i = 0; i < G_N_ELEMENTS (cpms_query_test); i++){ ret = mm_3gpp_parse_cpms_query_response (cpms_query_test[i].query, &mem1, &mem2, &error); + g_assert_no_error (error); g_assert (ret); g_assert_no_error (error); g_assert_cmpuint (cpms_query_test[i].mem1_want, ==, mem1); -- cgit v1.2.3-70-g09d2