diff options
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/conf.c | 8 | ||||
-rw-r--r-- | runtime/vm.c | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/runtime/conf.c b/runtime/conf.c index e7c1576f..96d9dcab 100644 --- a/runtime/conf.c +++ b/runtime/conf.c @@ -512,7 +512,7 @@ finalize_it: rsRetVal cflineParseTemplateName(uchar** pp, omodStringRequest_t *pOMSR, int iEntry, int iTplOpts, uchar *dfltTplName) { uchar *p; - uchar *tplName; + uchar *tplName = NULL; cstr_t *pStrB; DEFiRet; @@ -549,10 +549,12 @@ rsRetVal cflineParseTemplateName(uchar** pp, omodStringRequest_t *pOMSR, int iEn CHKiRet(cstrConvSzStrAndDestruct(pStrB, &tplName, 0)); } - iRet = OMSRsetEntry(pOMSR, iEntry, tplName, iTplOpts); - if(iRet != RS_RET_OK) goto finalize_it; + CHKiRet(OMSRsetEntry(pOMSR, iEntry, tplName, iTplOpts)); finalize_it: + if(iRet != RS_RET_OK) + free(tplName); + *pp = p; RETiRet; diff --git a/runtime/vm.c b/runtime/vm.c index a1d992c3..0ed174d1 100644 --- a/runtime/vm.c +++ b/runtime/vm.c @@ -91,6 +91,9 @@ rsfrAddFunction(uchar *szName, prsf_t rsf) funcRegRoot = pEntry; finalize_it: + if(iRet != RS_RET_OK && iRet != RS_RET_DUP_FUNC_NAME) + free(pEntry); + RETiRet; } |