diff --git a/modules/database/src/ioc/db/dbBkpt.c b/modules/database/src/ioc/db/dbBkpt.c index 18a357ebe..a32ebab4e 100644 --- a/modules/database/src/ioc/db/dbBkpt.c +++ b/modules/database/src/ioc/db/dbBkpt.c @@ -331,6 +331,7 @@ long dbb(const char *record_name) if (pnode->ex_sem == NULL) { printf(" BKPT> Out of memory\n"); dbScanUnlock(precord); + free(pnode); epicsMutexUnlock(bkpt_stack_sem); return(1); } diff --git a/modules/database/src/std/dev/devSiSoftCallback.c b/modules/database/src/std/dev/devSiSoftCallback.c index 85ec4fcad..f52d595c1 100644 --- a/modules/database/src/std/dev/devSiSoftCallback.c +++ b/modules/database/src/std/dev/devSiSoftCallback.c @@ -108,6 +108,7 @@ static long add_record(dbCommon *pcommon) recGblRecordError(status, (void *)prec, "devSiSoftCallback (add_record) linked record not found"); + free(pdevPvt); return status; } diff --git a/modules/libcom/src/log/iocLogServer.c b/modules/libcom/src/log/iocLogServer.c index 732316196..08f9eca5f 100644 --- a/modules/libcom/src/log/iocLogServer.c +++ b/modules/libcom/src/log/iocLogServer.c @@ -113,6 +113,7 @@ int main(void) pserver->pfdctx = (void *) fdmgr_init(); if (!pserver->pfdctx) { + free(pserver); fprintf(stderr, "iocLogServer: %s\n", strerror(errno)); return IOCLS_ERROR; } diff --git a/modules/libcom/src/osi/os/posix/osdThread.c b/modules/libcom/src/osi/os/posix/osdThread.c index 541408fad..664804738 100644 --- a/modules/libcom/src/osi/os/posix/osdThread.c +++ b/modules/libcom/src/osi/os/posix/osdThread.c @@ -956,8 +956,10 @@ LIBCOM_API epicsThreadPrivateId epicsStdCall epicsThreadPrivateCreate(void) return NULL; status = pthread_key_create(key,0); checkStatus(status,"pthread_key_create epicsThreadPrivateCreate"); - if(status) + if(status) { + free(key); return NULL; + } return((epicsThreadPrivateId)key); }