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 /cpukit/libmisc/shell/main_edit.c | |
parent | a0bf44e115c0b89f7a2c8090d3b169daad8bd543 (diff) |
cpukit/libmisc/shell/main_edit.c: Fix use after free()
Coverity Id 1255353. Read from pointer after free().
Diffstat (limited to 'cpukit/libmisc/shell/main_edit.c')
-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 } } } |