diff options
author | Harald Welte <laforge@gnumonks.org> | 2016-07-10 15:11:45 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2016-07-10 15:11:45 +0200 |
commit | f3239113db910962a4ccac2f93d689a86450264f (patch) | |
tree | a1f7ab990bf1e40f1523106c30f195248815e14c /src | |
parent | 673018fed99aab80c3ac23c95f568ff0bf272f60 (diff) |
fsm: talloc + copy the 'id' passed into a FSM
The 'id' is used to generate the human-readable name of the FSM.
However, when the FSM creates slave FSMs later, the caller-passed "ID"
mgiht long be gone again (e.g. it was on stack memory). So let's copy
the 'id' string to a chunk of dynamically-allocated memory at time of
FSM start to ensure we have it later when creating child FSMs.
Change-Id: Ib88a2c02c5c91f17b4ec1e9db57a06d6d66465fb
Diffstat (limited to 'src')
-rw-r--r-- | src/fsm.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -169,7 +169,8 @@ struct osmo_fsm_inst *osmo_fsm_inst_alloc(struct osmo_fsm *fsm, void *ctx, void fi->log_level = log_level; fi->timer.data = fi; fi->timer.cb = fsm_tmr_cb; - fi->id = id; + if (id) + fi->id = talloc_strdup(fi, id); if (!fsm_log_addr) { if (id) |