diff --git a/src/lib66/exec/ssexec_tree.c b/src/lib66/exec/ssexec_tree.c index 0a32ff884c2b13ad6f52630d9541ba0716824cff..e5093f54e55ebe774845358690ee727dba120c6f 100644 --- a/src/lib66/exec/ssexec_tree.c +++ b/src/lib66/exec/ssexec_tree.c @@ -1123,7 +1123,18 @@ void tree_remove(graph_t *g, char const *base, char const *treename) tree_master_modify_contents(base, treename) ; - tree_switch_current(base, treename) ; + if (tree_iscurrent(base, treename)) { + /** this symlink must be valid in any case. If not the + * sanitize_system process will crash. So, at least point to + * the SS_DEFAULT_TREENAME as this tree is create automatically + * if it doesn't exist at every 66 command invocation */ + log_warn("tree ",treename, " is marked as default -- switch default to: ", SS_DEFAULT_TREENAME) ; + + if (!tree_switch_current(base, SS_DEFAULT_TREENAME)) + log_dieusys(LOG_EXIT_SYS,"set: ", SS_DEFAULT_TREENAME, " as default") ; + + log_info("Set successfully: ", SS_DEFAULT_TREENAME," as default") ; + } log_info("Deleted successfully: ", treename) ; }