lib/ldaputil/dbconf.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
New commits:
commit f3afc1198c2d9d63d6b5ad01d3fe5b9061d648a1
Author: Noriko Hosoi <nhosoi(a)redhat.com>
Date: Mon Mar 10 12:50:57 2014 -0700
Ticket #47740 - Coverity issue in 1.3.3
Description: Coverity 11778 - Resource leak
val was allocated by dbconf_decodeval, which was not freed if propval
failed to create.
Reviewed by mareynol(a)redhat.com (Thanks, Mark!)
(cherry picked from commit 6f51e06c606049e7ca8e0b763c683fa98b33974a)
diff --git a/lib/ldaputil/dbconf.c b/lib/ldaputil/dbconf.c
index e6de3b7..1ffdab7 100644
--- a/lib/ldaputil/dbconf.c
+++ b/lib/ldaputil/dbconf.c
@@ -264,20 +264,20 @@ static int dbconf_parse_propval (char *buf, char *ptr,
propval = (DBPropVal_t *)malloc(sizeof(DBPropVal_t));
if (!propval){
- if (encval) free(val);
+ if (encval && val) free(val);
return LDAPU_ERR_OUT_OF_MEMORY;
}
memset((void *)propval, 0, sizeof(DBPropVal_t));
propval->prop = strdup(prop);
propval->val = val ? strdup(val) : 0;
+ if (encval && val) free(val); /* val was allocated by dbconf_decodeval */
+
if (!propval->prop || (val && !propval->val)) {
- dbconf_free_propval(propval);
- return LDAPU_ERR_OUT_OF_MEMORY;
+ dbconf_free_propval(propval);
+ return LDAPU_ERR_OUT_OF_MEMORY;
}
- if(encval) free(val); /* val was allocated by dbconf_decodeval */
-
insert_dbinfo_propval(db_info, propval);
return LDAPU_SUCCESS;
}
Show replies by date