Reloading a possibly freed function pointer. Patch by Mike Frysinger.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4732 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
Benno Schulenberg 2014-04-05 18:59:46 +00:00
parent 189fff44dc
commit fc55756378
2 changed files with 6 additions and 0 deletions

View File

@ -1,3 +1,6 @@
2014-04-05 Mike Frysinger <vapier@gentoo.org>
* src/nano.c (do_input): Reload possibly freed function pointer.
2014-04-04 Benno Schulenberg <bensberg@justemail.net> 2014-04-04 Benno Schulenberg <bensberg@justemail.net>
* src/{files.c,nano.c}: Avoid two more compilation warnings. * src/{files.c,nano.c}: Avoid two more compilation warnings.
* configure.ac: Allow --enable-extra and --enable-multibuffer * configure.ac: Allow --enable-extra and --enable-multibuffer

View File

@ -1675,6 +1675,9 @@ int do_input(bool *meta_key, bool *func_key, bool *s_or_t, bool
#endif #endif
s->scfunc(); s->scfunc();
#ifndef DISABLE_COLOR #ifndef DISABLE_COLOR
/* The command might have re-initialized shortcuts,
* in which case f is now invalid. Let's reload it. */
f = sctofunc((sc *) s);
if (f && !f->viewok && openfile->syntax != NULL if (f && !f->viewok && openfile->syntax != NULL
&& openfile->syntax->nmultis > 0) { && openfile->syntax->nmultis > 0) {
reset_multis(openfile->current, FALSE); reset_multis(openfile->current, FALSE);