crash in scfg_prov_cfg_query_ready with modem PLS8-E
ModemManager(plugin cinterion) can crash on line 1151:
mm_obj_dbg (self, "failed processing list of MNO profiles: %s", error->message);
in file plugins/cinterion/mm-broadband-modem-cinterion.c because error is NULL. It looks g_regex_match_full can return FALSE without setting an error.
My modem:
Cinterion PLS8-E REVISION 04.004
In answer on AT^SCFG? I can see:
^SCFG: "MEopMode/Prov/Cfg","fallback*"
The star at the end of "fallback" is the reason why the g_regex_match_full in function mm_cinterion_provcfg_response_to_cid return FALSE
gboolean
mm_cinterion_provcfg_response_to_cid (const gchar *response,
MMCinterionModemFamily modem_family,
MMModemCharset charset,
gpointer log_object,
gint *cid,
GError **error)
{
g_autoptr(GRegex) r = NULL;
g_autoptr(GMatchInfo) match_info = NULL;
g_autofree gchar *mno = NULL;
r = g_regex_new ("\\^SCFG:\\s*\"MEopMode/Prov/Cfg\",\\s*\"([0-9a-zA-Z]*)\"", 0, 0, NULL);
g_assert (r != NULL);
if (!g_regex_match_full (r, response, strlen (response), 0, 0, &match_info, error))
return FALSE;
mno = mm_get_string_unquoted_from_match_info (match_info, 1);
if (mno && modem_family == MM_CINTERION_MODEM_FAMILY_IMT) {
mno = mm_charset_take_and_convert_to_utf8 (mno, charset);
mm_obj_dbg (log_object, "current mno: %s", mno);
}
In the attachment you can find plugin_cinterion.patch, which can solve this issue...
Jan