summaryrefslogtreecommitdiffstats
path: root/template.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2012-09-17 08:58:29 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2012-09-17 08:58:29 +0200
commit76300a1342936161d1c82ab39e98193dcc00307d (patch)
treef44a4be10cbc2a48889ba32e06cdb4301709234a /template.c
parent0569f2e581529d893cd471f6c33bce13a53e0542 (diff)
downloadrsyslog-76300a1342936161d1c82ab39e98193dcc00307d.tar.gz
rsyslog-76300a1342936161d1c82ab39e98193dcc00307d.tar.bz2
rsyslog-76300a1342936161d1c82ab39e98193dcc00307d.zip
Fix other small memory leaks in template() processing
Diffstat (limited to 'template.c')
-rw-r--r--template.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/template.c b/template.c
index 83dd6e85..06306115 100644
--- a/template.c
+++ b/template.c
@@ -1283,7 +1283,7 @@ static rsRetVal
createPropertyTpe(struct template *pTpl, struct cnfobj *o)
{
struct templateEntry *pTpe;
- cstr_t *name;
+ cstr_t *name = NULL;
uchar *outname = NULL;
int i;
int droplastlf = 0;
@@ -1314,9 +1314,10 @@ createPropertyTpe(struct template *pTpl, struct cnfobj *o)
if(!pvals[i].bUsed)
continue;
if(!strcmp(pblkProperty.descr[i].name, "name")) {
- rsCStrConstructFromszStr(&name,
- (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL));
+ uchar *tmpstr = (uchar*)es_str2cstr(pvals[i].val.d.estr, NULL);
+ rsCStrConstructFromszStr(&name, tmpstr);
cstrFinalize(name);
+ free(tmpstr);
} else if(!strcmp(pblkProperty.descr[i].name, "droplastlf")) {
droplastlf = pvals[i].val.d.n;
} else if(!strcmp(pblkProperty.descr[i].name, "mandatory")) {
@@ -1523,7 +1524,7 @@ createPropertyTpe(struct template *pTpl, struct cnfobj *o)
pTpe->data.field.options.bSecPathReplace = 1;
break;
}
- pTpe->fieldName = ustrdup(outname);
+ pTpe->fieldName = outname;
if(outname != NULL)
pTpe->lenFieldName = ustrlen(outname);
pTpe->data.field.eDateFormat = datefmt;
@@ -1567,6 +1568,8 @@ createPropertyTpe(struct template *pTpl, struct cnfobj *o)
finalize_it:
if(pvals != NULL)
cnfparamvalsDestruct(pvals, &pblkProperty);
+ if(name != NULL)
+ rsCStrDestruct(&name);
RETiRet;
}