ofono: fix crash during complete-connection for Ofono modem

nm_modem_complete_connection() cannot just return FALSE in case
the modem doesn't overwrite complete_connection(). It must set
the error variable.

This leads to a crash when calling AddAndActivate for Ofono type
modem. It does not affect the ModemManager implementation
NMModemBroadband, because that one implements the method.
This commit is contained in:
Thomas Haller 2018-03-14 08:19:47 +01:00
parent af97b9a41e
commit 14adbc692a

View file

@ -1094,9 +1094,17 @@ nm_modem_complete_connection (NMModem *self,
const GSList *existing_connections,
GError **error)
{
if (NM_MODEM_GET_CLASS (self)->complete_connection)
return NM_MODEM_GET_CLASS (self)->complete_connection (self, connection, existing_connections, error);
return FALSE;
NMModemClass *klass;
klass = NM_MODEM_GET_CLASS (self);
if (!klass->complete_connection) {
g_set_error (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INVALID_CONNECTION,
"Modem class %s had no complete_connection method",
G_OBJECT_TYPE_NAME (self));
return FALSE;
}
return klass->complete_connection (self, connection, existing_connections, error);
}
/*****************************************************************************/