DD_LIST_FOREACH_SAFE should be used when there is node remove operation from list.
[platform/core/system/libstorage.git] / src / storage-external-dbus.c
index be20d3f..dcd1e9e 100755 (executable)
@@ -367,6 +367,7 @@ void storage_ext_unregister_device_change(storage_ext_changed_cb func)
        GDBusConnection *conn;
        struct storage_ext_callback *callback;
        dd_list *elem;
+       dd_list *elem_n;
 
        if (!func)
                return;
@@ -379,7 +380,7 @@ void storage_ext_unregister_device_change(storage_ext_changed_cb func)
 //LCOV_EXCL_STOP
        }
 
-       DD_LIST_FOREACH(changed_list, elem, callback) {
+       DD_LIST_FOREACH_SAFE(changed_list, elem, elem_n, callback) {
                if (callback->func != func)
                        continue;
                if (callback->block_id > 0)