On Fri, 23 Jun 2006, Igor Russkih wrote: >>> (I'm seeing a crash when opening the syntax highlighting dialog for the >>> old syntax highlighting.) >> >> Find attached a patch. >> > Thanks, Pavel!
There are some issues with edit_syntax_colorer_dialog() too: 1) The number of elements allocated for 'groups' is one less than it should be. The extra element is needed for the NULL terminator. Memory could be overwritten if the number of groups is equal to the number of syntax types i.e. unique groups. This is unlikely to happen but still... 2) This one is worse because it trashes memory every time :) The memory allocated for 'types' in the while loop is used to store the descriptions of the syntax types and the names of the syntax types. Syntax type names are stored starting at the end of the array and syntax names are stored at the beginning. Now this line is wrong : types[types_list[0].items_number * 2 - types_num] = types_list[idx].name The first time it is invoked it trashes the memory after the last element of the 'types' array. I fixed it like this: types = g_malloc(sizeof(char*) * ((types_list[0].items_number * 2) + 1)); i.e. allocat one more element. It makes sense to do so because you use a NULL terminator for which no space is allocated again and this extra bytes makes the wrong indexing above work as expected. _______________________________________________ Mc-devel mailing list http://mail.gnome.org/mailman/listinfo/mc-devel
