From: Jan Kiszka <jan.kis...@siemens.com> Make sure the thread field of tcb->self is always initialized as rt_task_self returns it.
Reported-by: Mauro Salvini <mauro.salv...@smigroup.net> Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> --- lib/alchemy/task.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/alchemy/task.c b/lib/alchemy/task.c index 079d11b6e7..949a996d00 100644 --- a/lib/alchemy/task.c +++ b/lib/alchemy/task.c @@ -443,10 +443,12 @@ int rt_task_create(RT_TASK *task, const char *name, cta.stacksize = stksize; ret = __bt(copperplate_create_thread(&cta, &tcb->thobj.ptid)); - if (ret) + if (ret) { delete_tcb(tcb); - else + } else { + tcb->self.thread = tcb->thobj.ptid; task->thread = tcb->thobj.ptid; + } out: CANCEL_RESTORE(svc); -- 2.16.4 -- Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate Competence Center Embedded Linux