From bda0ef62f01ab86f5f4d84fb3d0eb25c14aaea55 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Fri, 21 Sep 2012 08:41:17 +0200 Subject: [PATCH] bugfix: subtree-type template incorrectly handled --- template.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/template.c b/template.c index 3189044d1..8558dd8ab 100644 --- a/template.c +++ b/template.c @@ -1718,7 +1718,10 @@ tplProcessCnf(struct cnfobj *o) free(name); /* overall assigned */ ABORT_FINALIZE(RS_RET_ERR); } else { - subtree = es_strdup(pvals[i].val.d.estr); + /* TODO: unify strings! */ + char *cstr = es_str2cstr(pvals[i].val.d.estr, NULL); + subtree = es_newStrFromBuf(cstr+1, es_strlen(pvals[i].val.d.estr)-1); + free(cstr); } } else if(!strcmp(pblk.descr[i].name, "plugin")) { plugin = (uchar*) es_str2cstr(pvals[i].val.d.estr, NULL); @@ -1831,7 +1834,7 @@ tplProcessCnf(struct cnfobj *o) break; case T_LIST: createListTpl(pTpl, o); break; - case T_SUBTREE: pTpl->subtree = subtree + 1; + case T_SUBTREE: pTpl->subtree = subtree; break; } @@ -1934,7 +1937,8 @@ void tplDeleteAll(rsconf_t *conf) pTplDel = pTpl; pTpl = pTpl->pNext; free(pTplDel->pszName); - es_deleteStr(pTplDel->subtree); + if(pTplDel->subtree != NULL) + es_deleteStr(pTplDel->subtree); free(pTplDel); } ENDfunc @@ -1992,7 +1996,8 @@ void tplDeleteNew(rsconf_t *conf) pTplDel = pTpl; pTpl = pTpl->pNext; free(pTplDel->pszName); - es_deleteStr(pTplDel->subtree); + if(pTplDel->subtree != NULL) + es_deleteStr(pTplDel->subtree); free(pTplDel); } ENDfunc