Branch: refs/heads/master Author: Jiří Techet techet@gmail.com Committer: Jiří Techet techet@gmail.com Date: Wed, 04 Nov 2015 16:35:48 UTC Commit: 10f7cb24b26d1a62cdf4851788e4363efacb1b78 https://github.com/geany/geany/commit/10f7cb24b26d1a62cdf4851788e4363efacb1b...
Log Message: ----------- Avoid possible invalid memory access when activating plugin
It may happen (and happens on OS X) that plugin activation using plugin_new() triggers some action which causes the tree view to update. However, as the old plugin was freed before, the tree view contains an invalid pointer to p which causes invalid memory access.
After freeing the old pointer, set the tree view value to NULL - the plugin pointer is checked at other places for NULL value so it doesn't crash.
Modified Paths: -------------- src/plugins.c
Modified: src/plugins.c 3 lines changed, 3 insertions(+), 0 deletions(-) =================================================================== @@ -1478,6 +1478,9 @@ static void pm_plugin_toggled(GtkCellRendererToggle *cell, gchar *pth, gpointer /* save shortcuts (only need this group, but it doesn't take long) */ keybindings_write_to_file();
+ /* plugin_new() below may cause a tree view refresh with invalid p - set to NULL */ + gtk_tree_store_set(pm_widgets.store, &store_iter, + PLUGIN_COLUMN_PLUGIN, NULL, -1); plugin_free(p);
/* reload plugin module and initialize it if item is checked */
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).