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) | 
