mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-10 00:00:21 +01:00
core/wwan: ensure correct conditions before signal emission
Currently, ip4 new config signal is being emitted twice, due to the lack of a barrier to a possible situation. This commit includes this. This fixes a crash on NMCI tests due to an assertion failure, now it will not go ahead in the function anymore if it is under the undesired conditions. The backtrace of the crashes can be found at https://bugzilla.redhat.com/show_bug.cgi?id=2028385
This commit is contained in:
parent
b88ce6a317
commit
e2ee0e6a0d
2 changed files with 8 additions and 1 deletions
|
|
@ -170,7 +170,10 @@ modem_new_config(NMModem *modem,
|
|||
NMDeviceModemPrivate *priv = NM_DEVICE_MODEM_GET_PRIVATE(self);
|
||||
NMDevice *device = NM_DEVICE(self);
|
||||
|
||||
g_return_if_fail(nm_device_devip_get_state(device, addr_family) == NM_DEVICE_IP_STATE_PENDING);
|
||||
if (nm_device_devip_get_state(device, addr_family) != NM_DEVICE_IP_STATE_PENDING) {
|
||||
_LOGD(LOGD_MB, "retrieving IP configuration while no longer in pending state");
|
||||
return;
|
||||
}
|
||||
|
||||
if (error) {
|
||||
_LOGW(LOGD_MB, "retrieving IP configuration failed: %s", error->message);
|
||||
|
|
|
|||
|
|
@ -650,6 +650,10 @@ _ppp_mgr_callback(NMPppMgr *ppp_mgr, const NMPppMgrCallbackData *callback_data,
|
|||
* We will emit it together with stage3. */
|
||||
continue;
|
||||
}
|
||||
if (priv->ip_data_x[IS_IPv4].stage3_on_idle_source) {
|
||||
/* We scheduled already a handler. Let it handle the new configuration. */
|
||||
continue;
|
||||
}
|
||||
if (callback_data->data.ip_changed_x[IS_IPv4])
|
||||
_ppp_maybe_emit_new_config(self, IS_IPv4 ? AF_INET : AF_INET6);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue