summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorNoriko Hosoi <nhosoi@redhat.com>2010-08-18 12:06:48 -0700
committerNoriko Hosoi <nhosoi@redhat.com>2010-08-20 13:07:01 -0700
commit38310cc46336c4a3c238f1c3c43d80610111cd01 (patch)
tree0bfd7c6926fb7443564382aee14c204bc954a92b /lib
parentec118b1ed616e7405e801179468dc101f0afdf6b (diff)
downloadds-38310cc46336c4a3c238f1c3c43d80610111cd01.tar.gz
ds-38310cc46336c4a3c238f1c3c43d80610111cd01.tar.xz
ds-38310cc46336c4a3c238f1c3c43d80610111cd01.zip
Bug 616500 - fix coverity Defect Type: Resource leaks issues CID 12094 - 12136
https://bugzilla.redhat.com/show_bug.cgi?id=616500 coverity ID 12131 Comment: ACL_AuthInfoSetDbname(lib/libaccess/register.cpp) -- free dbtype in the error cases.
Diffstat (limited to 'lib')
-rw-r--r--lib/libaccess/register.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/libaccess/register.cpp b/lib/libaccess/register.cpp
index 71b285e0..09d918fc 100644
--- a/lib/libaccess/register.cpp
+++ b/lib/libaccess/register.cpp
@@ -631,7 +631,7 @@ ACL_AuthInfoSetMethod(NSErr_t *errp, PList_t auth_info, ACLMethod_t t)
NSAPI_PUBLIC int
ACL_AuthInfoSetDbname(NSErr_t *errp, PList_t auth_info, const char *dbname)
{
- ACLDbType_t *dbtype = (ACLDbType_t *)PERM_MALLOC(sizeof(ACLDbType_t));
+ ACLDbType_t *dbtype = NULL;
ACLDbType_t *t2;
char *copy;
char *n2;
@@ -640,12 +640,12 @@ ACL_AuthInfoSetDbname(NSErr_t *errp, PList_t auth_info, const char *dbname)
int old2;
int rv;
- if (!dbtype) {
- /* out of memory */
- return -1;
- }
-
if (auth_info) {
+ dbtype = (ACLDbType_t *)PERM_MALLOC(sizeof(ACLDbType_t));
+ if (!dbtype) {
+ /* out of memory */
+ return -1;
+ }
rv = ACL_DatabaseFind(errp, dbname, dbtype, (void **)&db);
if (rv != LAS_EVAL_TRUE) {
@@ -679,7 +679,10 @@ ACL_AuthInfoSetDbname(NSErr_t *errp, PList_t auth_info, const char *dbname)
/* Create new entries for "dbtype" & "dbname" */
copy = (char *)PERM_STRDUP(dbname);
- if (!copy) return -1;
+ if (!copy) {
+ PERM_FREE(dbtype);
+ return -1;
+ }
PListInitProp(auth_info, ACL_ATTR_DATABASE_INDEX,
ACL_ATTR_DATABASE, copy, 0);
PListInitProp(auth_info, ACL_ATTR_DBTYPE_INDEX, ACL_ATTR_DBTYPE,