diff options
author | Noriko Hosoi <nhosoi@redhat.com> | 2010-08-18 12:06:48 -0700 |
---|---|---|
committer | Noriko Hosoi <nhosoi@redhat.com> | 2010-08-20 13:07:01 -0700 |
commit | 38310cc46336c4a3c238f1c3c43d80610111cd01 (patch) | |
tree | 0bfd7c6926fb7443564382aee14c204bc954a92b | |
parent | ec118b1ed616e7405e801179468dc101f0afdf6b (diff) | |
download | ds-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.
-rw-r--r-- | lib/libaccess/register.cpp | 17 |
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, |