dns: Fix invalid memory access on Dnsconfd DBUS error
DBus errors were not properly handled after DBus calls and
that caused SIGSEGV. Now they are checked.
Fixes #1738
Fixes: b8714e86e4
('dns: introduce configuration_serial support to the dnsconfd plugin')
This commit is contained in:

committed by
Beniamino Galvani

parent
42349205dd
commit
4ad20787bb
@@ -132,6 +132,13 @@ dnsconfd_serial_retrieval_done(GObject *source_object, GAsyncResult *res, gpoint
|
|||||||
self = user_data;
|
self = user_data;
|
||||||
priv = NM_DNS_DNSCONFD_GET_PRIVATE(self);
|
priv = NM_DNS_DNSCONFD_GET_PRIVATE(self);
|
||||||
|
|
||||||
|
if (!response) {
|
||||||
|
_LOGW("dnsconfd serial retrieval failed: %s", error->message);
|
||||||
|
priv->plugin_state = DNSCONFD_PLUGIN_IDLE;
|
||||||
|
_nm_dns_plugin_update_pending_maybe_changed(NM_DNS_PLUGIN(self));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
nm_clear_g_cancellable(&priv->serial_cancellable);
|
nm_clear_g_cancellable(&priv->serial_cancellable);
|
||||||
|
|
||||||
g_variant_get(response, "(v)", &new_serial_variant);
|
g_variant_get(response, "(v)", &new_serial_variant);
|
||||||
@@ -201,8 +208,12 @@ dnsconfd_update_done(GObject *source_object, GAsyncResult *res, gpointer user_da
|
|||||||
|
|
||||||
nm_clear_g_cancellable(&priv->update_cancellable);
|
nm_clear_g_cancellable(&priv->update_cancellable);
|
||||||
|
|
||||||
if (!response)
|
if (!response) {
|
||||||
_LOGW("dnsconfd update failed: %s", error->message);
|
_LOGW("dnsconfd update failed: %s", error->message);
|
||||||
|
priv->plugin_state = DNSCONFD_PLUGIN_IDLE;
|
||||||
|
_nm_dns_plugin_update_pending_maybe_changed(NM_DNS_PLUGIN(self));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* By using &s we will get pointer to char data contained
|
/* By using &s we will get pointer to char data contained
|
||||||
* in variant and thus no freing of dnsconfd_message is required */
|
* in variant and thus no freing of dnsconfd_message is required */
|
||||||
|
Reference in New Issue
Block a user