Hi Guys, Whilst experimenting with writing a plugin for gcc I discovered that I could cause a segfault if I attempted to register a PLUGIN_INFO callback with any name other than the name of the plugin. The attached patch fixes this problem and produces an error message instead.
OK to apply ? Cheers Nick gcc/ChangeLog 2016-10-20 Nick Clifton <ni...@redhat.com> * plugin.c (register_plugin_info): Produce an error message if the plugin is not found in the hash table. Index: gcc/plugin.c =================================================================== --- gcc/plugin.c (revision 241361) +++ gcc/plugin.c (working copy) @@ -330,7 +330,15 @@ register_plugin_info (const char* name, struct plugin_info *info) { void **slot = htab_find_slot (plugin_name_args_tab, name, NO_INSERT); - struct plugin_name_args *plugin = (struct plugin_name_args *) *slot; + struct plugin_name_args *plugin; + + if (slot == NULL) + { + error ("unable to register info for plugin '%s' - plugin name not found", + name); + return; + } + plugin = (struct plugin_name_args *) *slot; plugin->version = info->version; plugin->help = info->help; }