diff options
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/msg.c | 8 | ||||
-rw-r--r-- | runtime/rsconf.c | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/runtime/msg.c b/runtime/msg.c index 87213bb7..5517dee8 100644 --- a/runtime/msg.c +++ b/runtime/msg.c @@ -551,6 +551,7 @@ propNameStrToID(uchar *pName, propid_t *pPropID) } else if(!strcmp((char*) pName, "$uptime")) { *pPropID = PROP_SYS_UPTIME; } else { + DBGPRINTF("PROP_INVALID for name '%s'\n", pName); *pPropID = PROP_INVALID; iRet = RS_RET_VAR_NOT_FOUND; } @@ -3774,13 +3775,16 @@ msgGetMsgVarNew(msg_t *pThis, uchar *name) propid_t propid; unsigned short bMustBeFreed = 0; es_str_t *estr; + es_str_t *propName; ISOBJ_TYPE_assert(pThis, msg); /* always call MsgGetProp() without a template specifier */ /* TODO: optimize propNameToID() call -- rgerhards, 2009-06-26 */ propNameStrToID(name, &propid); - pszProp = (uchar*) MsgGetProp(pThis, NULL, propid, NULL, &propLen, &bMustBeFreed, NULL); + propName = es_newStrFromCStr((char*)name+1, ustrlen(name)-1); // TODO: optimize! + pszProp = (uchar*) MsgGetProp(pThis, NULL, propid, propName, &propLen, &bMustBeFreed, NULL); + es_deleteStr(propName); estr = es_newStrFromCStr((char*)pszProp, propLen); if(bMustBeFreed) @@ -4183,7 +4187,7 @@ msgSetJSONFromVar(msg_t *pMsg, uchar *varname, struct var *v) /* we always know strlen(varname) > 2 */ if(varname[1] == '!') msgAddJSONObj(pMsg, varname+1, json, &pMsg->json); - if(varname[1] == '.') + else if(varname[1] == '.') msgAddJSONObj(pMsg, varname+1, json, &pMsg->localvars); else /* global - '/' */ msgAddJSONObj(pMsg, varname+1, json, &global_var_root); diff --git a/runtime/rsconf.c b/runtime/rsconf.c index b13e5cc7..ffe0d1d1 100644 --- a/runtime/rsconf.c +++ b/runtime/rsconf.c @@ -486,10 +486,10 @@ cnfGetVar(char *name, void *usrptr) else if(name[1] == '!') estr = msgGetCEEVarNew((msg_t*) usrptr, name+2); else - estr = msgGetMsgVarNew((msg_t*) usrptr, (uchar*)name+1); + estr = msgGetMsgVarNew((msg_t*) usrptr, (uchar*)name); } else { /* if this happens, we have a program logic error */ estr = es_newStrFromCStr("err: var must start with $", - strlen("err: var must start with $")); + sizeof("err: var must start with $")-1); } if(Debug) { char *s; |