hardening delete operator
Make sure that delete operator is not called with invalid pointers.
Change-Id: I822b670c63bd40234aef0213517914fdcc7b68e9
Reviewed-by: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
diff --git a/src/accountsecuritytab.cpp b/src/accountsecuritytab.cpp
index d298aaa..e3a23f0 100644
--- a/src/accountsecuritytab.cpp
+++ b/src/accountsecuritytab.cpp
@@ -109,7 +109,10 @@
AccountSecurityTab *view = ACCOUNT_SECURITY_TAB(object);
AccountSecurityTabPrivate *priv = ACCOUNT_SECURITY_TAB_GET_PRIVATE(view);
- delete priv->qmodel_key_exchange;
+ if (priv->qmodel_key_exchange) {
+ delete priv->qmodel_key_exchange;
+ priv->qmodel_key_exchange = nullptr;
+ }
G_OBJECT_CLASS(account_security_tab_parent_class)->finalize(object);
}
diff --git a/src/choosecontactview.cpp b/src/choosecontactview.cpp
index 31f3faf..9179223 100644
--- a/src/choosecontactview.cpp
+++ b/src/choosecontactview.cpp
@@ -180,7 +180,10 @@
ChooseContactView *self = CHOOSE_CONTACT_VIEW(object);
ChooseContactViewPrivate *priv = CHOOSE_CONTACT_VIEW_GET_PRIVATE(self);
- delete priv->sorted_contacts;
+ if (priv->sorted_contacts) {
+ delete priv->sorted_contacts;
+ priv->sorted_contacts = nullptr;
+ }
G_OBJECT_CLASS(choose_contact_view_parent_class)->finalize(object);
}
diff --git a/src/models/gtkqtreemodel.cpp b/src/models/gtkqtreemodel.cpp
index 7a8574c..25eacdc 100644
--- a/src/models/gtkqtreemodel.cpp
+++ b/src/models/gtkqtreemodel.cpp
@@ -673,7 +673,10 @@
g_free(priv->column_roles);
/* delete the created proxy model */
- delete priv->model;
+ if (not priv->model) {
+ delete priv->model;
+ priv->model = nullptr;
+ }
G_OBJECT_CLASS(gtk_q_tree_model_parent_class)->finalize (object);
}
diff --git a/src/ring_client.cpp b/src/ring_client.cpp
index cbb8457..83759fe 100644
--- a/src/ring_client.cpp
+++ b/src/ring_client.cpp
@@ -751,7 +751,10 @@
/* free the QCoreApplication, which will destroy all libRingClient models
* and thus send the Unregister signal over dbus to dring */
- delete priv->qtapp;
+ if (priv->qtapp) {
+ delete priv->qtapp;
+ priv->qtapp = nullptr;
+ }
/* free the copied cmd line args */
g_strfreev(priv->argv);
diff --git a/src/ringnotify.cpp b/src/ringnotify.cpp
index 56a56e8..8a3b8b0 100644
--- a/src/ringnotify.cpp
+++ b/src/ringnotify.cpp
@@ -376,7 +376,10 @@
static void
delete_idx(QModelIndex *idx)
{
- delete idx;
+ if (idx) {
+ delete idx;
+ idx = nullptr;
+ }
}
#endif