From 312314e883a870b275946487fde6c42b3280a1ea Mon Sep 17 00:00:00 2001 From: Christian Bitter Date: Mon, 22 Jul 2024 12:07:34 +0200 Subject: [PATCH] Reject wrong lifecycle transitions without crash (#1209) Signed-off-by: Christian Bitter --- rclpy/rclpy/lifecycle/node.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rclpy/rclpy/lifecycle/node.py b/rclpy/rclpy/lifecycle/node.py index 6528007d5..64cb7f2f3 100644 --- a/rclpy/rclpy/lifecycle/node.py +++ b/rclpy/rclpy/lifecycle/node.py @@ -350,6 +350,12 @@ def __on_change_state( ): self.__check_is_initialized() transition_id = req.transition.id + + available_transition_ids = [t[0] for t in self._state_machine.available_transitions] + if transition_id not in available_transition_ids: + resp.success = False + return resp + if req.transition.label: try: transition_id = self._state_machine.get_transition_by_label(req.transition.label)