diff options
-rw-r--r-- | runtime/msg.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/runtime/msg.c b/runtime/msg.c index 8c8e9670..cc7b463d 100644 --- a/runtime/msg.c +++ b/runtime/msg.c @@ -1629,14 +1629,21 @@ finalize_it: } -/* rgerhards, 2005-11-24 +/* al, 2011-07-26: LockMsg to avoid race conditions */ static inline char *getMSGID(msg_t *pM) { - return (pM->pCSMSGID == NULL) ? "-" : (char*) rsCStrGetSzStrNoNULL(pM->pCSMSGID); + if (pM->pCSMSGID == NULL) { + return "-"; + } + else { + MsgLock(pM); + char* pszreturn = (char*) rsCStrGetSzStrNoNULL(pM->pCSMSGID); + MsgUnlock(pM); + return pszreturn; + } } - /* rgerhards 2009-06-12: set associated ruleset */ void MsgSetRuleset(msg_t *pMsg, ruleset_t *pRuleset) |