Fix NULL datagram segfault in parallel slave config FSM#155
Merged
sittner merged 2 commits intoparallel-slave-configfrom Mar 2, 2026
Merged
Fix NULL datagram segfault in parallel slave config FSM#155sittner merged 2 commits intoparallel-slave-configfrom
sittner merged 2 commits intoparallel-slave-configfrom
Conversation
- Propagate datagram to all sub-FSMs (fsm_change, fsm_coe_config, fsm_soe_config, fsm_eoe_config) in ec_fsm_slave_exec() to prevent segfault when fsm_change uses its stored NULL datagram pointer - Guard ec_fsm_eoe_t fsm_eoe_config in fsm_slave.h with #ifdef EC_EOE - Guard ec_fsm_eoe_init/clear calls for fsm_eoe_config with #ifdef EC_EOE - Pass NULL for eoe parameter to ec_fsm_slave_config_init() when EC_EOE is not defined Co-authored-by: sittner <1475582+sittner@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix segmentation fault in EtherCAT-IDLE thread
Fix NULL datagram segfault in parallel slave config FSM
Mar 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
parallel-slave-configbranch crashes with SIGSEGV inEtherCAT-IDLEbecauseec_fsm_change_t(and sibling sub-FSMs) insidefsm_slave_configstore their owndatagrampointer, initialized toNULLand never updated before execution. Whenec_fsm_change_state_start()fires, it dereferencesfsm->datagram = 0x0.Changes
master/fsm_slave.c—ec_fsm_slave_exec(): Propagate the incomingdatagramto all config sub-FSMs (fsm_change,fsm_coe_config,fsm_soe_config,fsm_eoe_config) on every cycle — both at config start and during ongoing execution — since the pointer changes each cycle from the ext_ring:master/fsm_slave.h: Guardec_fsm_eoe_t fsm_eoe_configwith#ifdef EC_EOEto match the established pattern for EoE-conditional fields.master/fsm_slave.c— init/clear: Guardec_fsm_eoe_init/ec_fsm_eoe_clearforfsm_eoe_configwith#ifdef EC_EOE; passNULLfor the eoe argument toec_fsm_slave_config_init()whenEC_EOEis disabled.Original prompt
This pull request was created from Copilot chat.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.