Jan Kiszka wrote: > Gilles Chanteperdrix wrote: >> Jan Kiszka wrote: >>> This can be helpful for debugging the (futile) release attempts of >>> mutexes by tasks that do not own them. >>> >>> Returning the RT_TASK reference may appear more consistent on first >>> sight, but it cannot be guaranteed that the owner is actually a native >>> task. Therefore this patch uses the symbolic name. >>> >>> Signed-off-by: Jan Kiszka <[EMAIL PROTECTED]> >>> --- >>> include/native/mutex.h | 3 +++ >>> ksrc/skins/native/mutex.c | 5 +++++ >>> 2 files changed, 8 insertions(+) >>> >>> Index: b/include/native/mutex.h >>> =================================================================== >>> --- a/include/native/mutex.h >>> +++ b/include/native/mutex.h >>> @@ -38,6 +38,9 @@ typedef struct rt_mutex_info { >>> >>> char name[XNOBJECT_NAME_LEN]; /**< Symbolic name. */ >>> >>> + char owner[XNOBJECT_NAME_LEN]; /**< Symbolic name of the current >>> owner, >>> + empty if unlocked. */ >>> + >>> } RT_MUTEX_INFO; >>> >>> typedef struct rt_mutex_placeholder { >>> Index: b/ksrc/skins/native/mutex.c >>> =================================================================== >>> --- a/ksrc/skins/native/mutex.c >>> +++ b/ksrc/skins/native/mutex.c >>> @@ -597,6 +597,11 @@ int rt_mutex_inquire(RT_MUTEX *mutex, RT >>> strcpy(info->name, mutex->name); >>> info->lockcnt = mutex->lockcnt; >>> info->nwaiters = xnsynch_nsleepers(&mutex->synch_base); >>> + if (mutex->lockcnt) >>> + strcpy(info->owner, >>> + xnthread_name(xnsynch_owner(&mutex->synch_base))); >> xnthread_name is not necessarily null terminated, so I would suggest to > > In fact, that is lethal for other users as well (trace points and proc > dumps come to my mind) and should be fixed ASAP. >
xnthread_name() shall be considered as null terminated, the payload area is actually XNOBJECT_NAME_LEN - 1. Users who do not assume this are the ones that need fixing (like xnobject_copy_name). -- Philippe. _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core