Problem: Using freed memory when g:colors_name is changed in the colors
script. (oni-link)
Solution: Make a copy of the variable value.
* and 'background' or 't_Co' is changed.
*/
p = get_var_value((char_u *)"g:colors_name");
- if (p != NULL && load_colors(p) == OK)
- return;
+ if (p != NULL)
+ {
+ /* The value of g:colors_name could be freed when sourcing the script,
+ * making "p" invalid, so copy it. */
+ char_u *copy_p = vim_strsave(p);
+ int r;
+
+ if (copy_p != NULL)
+ {
+ r = load_colors(copy_p);
+ vim_free(copy_p);
+ if (r == OK)
+ return;
+ }
+ }
+
#endif
/*
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 660,
/**/
659,
/**/