diff --git a/master/slave_config.c b/master/slave_config.c index 50921caf..b28898bc 100644 --- a/master/slave_config.c +++ b/master/slave_config.c @@ -579,14 +579,15 @@ ec_voe_handler_t *ec_slave_config_find_voe_handler( */ ec_flag_t *ec_slave_config_find_flag( ec_slave_config_t *sc, /**< Slave configuration. */ - const uint8_t *key /**< Flag key. */ + const char *key /**< Flag key. */ ) { - ec_flag_t *flag; - - list_for_each_entry(flag, &sc->flags, list) { - if (!strcmp(flag->key, key)) { - return flag; + if (sc) { + ec_flag_t *flag; + list_for_each_entry(flag, &sc->flags, list) { + if (!strcmp(flag->key, key)) { + return flag; + } } } diff --git a/master/slave_config.h b/master/slave_config.h index 12a90ebb..ad22e4ed 100644 --- a/master/slave_config.h +++ b/master/slave_config.h @@ -177,6 +177,7 @@ ec_reg_request_t *ec_slave_config_find_reg_request(ec_slave_config_t *, unsigned int); ec_voe_handler_t *ec_slave_config_find_voe_handler(ec_slave_config_t *, unsigned int); +ec_flag_t *ec_slave_config_find_flag(ec_slave_config_t *, const char *); ec_sdo_request_t *ecrt_slave_config_create_sdo_request_err( ec_slave_config_t *, uint16_t, uint8_t, size_t);