diff --git a/lib/hook_list.cpp b/lib/hook_list.cpp index 99fa72ad1..db6824982 100644 --- a/lib/hook_list.cpp +++ b/lib/hook_list.cpp @@ -204,6 +204,8 @@ void hook_list_stop(struct vlist *hs) struct vlist * hook_list_get_signals(struct vlist *hs) { Hook *h = (Hook *) vlist_last(hs); + if (!h) + return nullptr; return h->getSignals(); } diff --git a/lib/path.cpp b/lib/path.cpp index 451b90cca..ea6e4eb1e 100644 --- a/lib/path.cpp +++ b/lib/path.cpp @@ -817,16 +817,11 @@ bool path_is_reversed(const struct vpath *p) struct vlist * path_output_signals(struct vpath *p) { #ifdef WITH_HOOKS - if (vlist_length(&p->hooks) > 0) { - Hook *last_hook = (Hook *) vlist_last(&p->hooks); + if (vlist_length(&p->hooks) > 0) + return hook_list_get_signals(&p->hooks); +#endif /* WITH_HOOKS */ - return last_hook->getSignals(); - } - else - return &p->signals; -#else return &p->signals; -#endif } json_t * path_to_json(struct vpath *p)