diff options
Diffstat (limited to 'runtime/msg.c')
-rw-r--r-- | runtime/msg.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/runtime/msg.c b/runtime/msg.c index 4df13031..ec3dbfa1 100644 --- a/runtime/msg.c +++ b/runtime/msg.c @@ -1004,11 +1004,15 @@ msg_t* MsgDup(msg_t* pOld) } else { tmpCOPYSZ(RawMsg); } - if(pOld->iLenHOSTNAME < CONF_HOSTNAME_BUFSIZE) { - memcpy(pNew->szHOSTNAME, pOld->szHOSTNAME, pOld->iLenHOSTNAME + 1); - pNew->pszHOSTNAME = pNew->szHOSTNAME; + if(pOld->pszHOSTNAME == NULL) { + pNew->pszHOSTNAME = NULL; } else { - tmpCOPYSZ(HOSTNAME); + if(pOld->iLenHOSTNAME < CONF_HOSTNAME_BUFSIZE) { + memcpy(pNew->szHOSTNAME, pOld->szHOSTNAME, pOld->iLenHOSTNAME + 1); + pNew->pszHOSTNAME = pNew->szHOSTNAME; + } else { + tmpCOPYSZ(HOSTNAME); + } } tmpCOPYCSTR(ProgName); @@ -2749,6 +2753,10 @@ uchar *MsgGetProp(msg_t *pMsg, struct templateEntry *pTpe, *pbMustBeFreed = 0; break; case PROP_SYS_UPTIME: +# ifdef OS_SOLARIS + pRes = (uchar*) "UPTIME NOT available under Solaris"; + *pbMustBeFreed = 0; +# else { struct sysinfo s_info; @@ -2764,6 +2772,7 @@ uchar *MsgGetProp(msg_t *pMsg, struct templateEntry *pTpe, snprintf((char*) pRes, sizeof(uchar) * 32, "%ld", s_info.uptime); } +# endif break; default: /* there is no point in continuing, we may even otherwise render the |