diff options
author | Joel Sherrill <joel.sherrill@oarcorp.com> | 2014-11-24 14:12:54 -0600 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@oarcorp.com> | 2014-11-25 12:57:08 -0600 |
commit | 4afa216ba878f08a030ab40cff57a852938ca18b (patch) | |
tree | 9be1c839981f3a62484b44610ac70e5d837c8d6c | |
parent | cpukit/dev/i2c/i2c-dev.c: Fix leak on error path (diff) | |
download | rtems-4afa216ba878f08a030ab40cff57a852938ca18b.tar.bz2 |
cpukit/libmisc/shell/main_edit.c: Fix use after free()
Coverity Id 1255353. Read from pointer after free().
-rw-r--r-- | cpukit/libmisc/shell/main_edit.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/cpukit/libmisc/shell/main_edit.c b/cpukit/libmisc/shell/main_edit.c index 0feb828c31..a73bc0d2c0 100644 --- a/cpukit/libmisc/shell/main_edit.c +++ b/cpukit/libmisc/shell/main_edit.c @@ -2147,7 +2147,15 @@ static void edit(struct editor *ed) { case ctrl('s'): save_editor(ed); break; case ctrl('p'): pipe_command(ed); break; #endif +#if defined(__rtems__) + /* + * Coverity spotted this as using ed after free() so changing + * the order of the statements. + */ + case ctrl('w'): ed = ed->env->current; close_editor(ed); break; +#else case ctrl('w'): close_editor(ed); ed = ed->env->current; break; +#endif } } } |