ldap/servers/plugins/memberof/memberof.c | 29 +++++++++++++++++++++--------
ldap/servers/slapd/util.c | 14 +++++---------
2 files changed, 26 insertions(+), 17 deletions(-)
New commits:
commit 52e15071bc98cc66edc47838d986c9803e1479bf
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Fri Aug 3 15:02:46 2012 -0400
Misc Coverity Fixes
Reviewed by: richm(Thanks Rich!)
diff --git a/ldap/servers/plugins/memberof/memberof.c
b/ldap/servers/plugins/memberof/memberof.c
index a69dd16..2ca4d2f 100644
--- a/ldap/servers/plugins/memberof/memberof.c
+++ b/ldap/servers/plugins/memberof/memberof.c
@@ -1113,17 +1113,29 @@ memberof_modop_one_replace_r(Slapi_PBlock *pb, MemberOfConfig
*config,
Slapi_Entry *e = 0;
memberofstringll *ll = 0;
char *op_str = 0;
- const char *op_to = slapi_sdn_get_ndn(op_to_sdn);
- const char *op_this = slapi_sdn_get_ndn(op_this_sdn);
- Slapi_Value *to_dn_val = slapi_value_new_string(op_to);
- Slapi_Value *this_dn_val = slapi_value_new_string(op_this);
+ const char *op_to;
+ const char *op_this;
+ Slapi_Value *to_dn_val;
+ Slapi_Value *this_dn_val;
+
+ op_to = slapi_sdn_get_ndn(op_to_sdn);
+ op_this = slapi_sdn_get_ndn(op_this_sdn);
+ to_dn_val = slapi_value_new_string(op_to);
+ this_dn_val = slapi_value_new_string(op_this);
+
+ if(this_dn_val == NULL || to_dn_val == NULL){
+ slapi_log_error( SLAPI_LOG_FATAL, MEMBEROF_PLUGIN_SUBSYSTEM,
+ "memberof_modop_one_replace_r: failed to get DN values (NULL)\n");
+ goto bail;
+ }
+
/* op_this and op_to are both case-normalized */
slapi_value_set_flags(this_dn_val, SLAPI_ATTR_FLAG_NORMALIZED_CIS);
slapi_value_set_flags(to_dn_val, SLAPI_ATTR_FLAG_NORMALIZED_CIS);
if (config == NULL) {
slapi_log_error( SLAPI_LOG_FATAL, MEMBEROF_PLUGIN_SUBSYSTEM,
- "memberof_modop_one_replace_r: NULL config parameter");
+ "memberof_modop_one_replace_r: NULL config parameter\n");
goto bail;
}
@@ -1184,8 +1196,7 @@ memberof_modop_one_replace_r(Slapi_PBlock *pb, MemberOfConfig
*config,
int res = 0;
slapi_pblock_get(search_pb, SLAPI_PLUGIN_INTOP_RESULT, &res);
slapi_log_error( SLAPI_LOG_FATAL, MEMBEROF_PLUGIN_SUBSYSTEM,
- "memberof_modop_one_replace_r: error searching for members: "
- "%d", res);
+ "memberof_modop_one_replace_r: error searching for members: %d\n", res);
} else {
slapi_pblock_get(search_pb, SLAPI_NENTRIES, &n_entries);
if(n_entries > 0)
@@ -1885,8 +1896,10 @@ int memberof_test_membership_callback(Slapi_Entry *e, void
*callback_data)
entry_sdn = slapi_entry_get_sdn(e);
entry_dn = slapi_value_new_string(slapi_entry_get_ndn(e));
+ if(entry_dn == NULL){
+ goto bail;
+ }
slapi_value_set_flags(entry_dn, SLAPI_ATTR_FLAG_NORMALIZED_CIS);
-
if(0 == entry_dn)
{
goto bail;
diff --git a/ldap/servers/slapd/util.c b/ldap/servers/slapd/util.c
index c3f3593..fc399e7 100644
--- a/ldap/servers/slapd/util.c
+++ b/ldap/servers/slapd/util.c
@@ -258,7 +258,6 @@ filter_stuff_func(void *arg, const char *val, PRUint32 slen)
char *buf = (char *)val;
int extra_space;
int filter_len = slen;
- int free_buf = 0;
/* look at val - if val is one of our special keywords, and make a note of it for the
next pass */
if (strcmp(val, ESC_NEXT_VAL) == 0){
@@ -342,7 +341,6 @@ filter_stuff_func(void *arg, const char *val, PRUint32 slen)
}
#else
buf = slapi_ch_calloc(sizeof(char), filter_len*3 + 1);
- free_buf = 1;
if(do_escape_string(val, filter_len, buf, special_filter) == NULL){
LDAPDebug(LDAP_DEBUG_TRACE, "slapi_filter_sprintf: failed to escape
filter value(%s)\n",val,0,0);
ctx->next_arg_needs_esc_norm = 0;
@@ -360,7 +358,7 @@ filter_stuff_func(void *arg, const char *val, PRUint32 slen)
if (ctx->buf_size + filter_len >= ctx->buf_len){
/* increase buffer for this filter */
extra_space = (ctx->buf_len + filter_len + BUF_INCR);
- slapi_ch_realloc(ctx->buf, sizeof(char) * extra_space);
+ ctx->buf = slapi_ch_realloc(ctx->buf, sizeof(char) * extra_space);
ctx->buf_len = extra_space;
}
@@ -373,9 +371,7 @@ filter_stuff_func(void *arg, const char *val, PRUint32 slen)
ctx->attr_found = 0;
ctx->attr_position = 0;
memset(ctx->attr, '\0', ATTRSIZE);
- if(free_buf){
- slapi_ch_free_string(&buf);
- }
+ slapi_ch_free_string(&buf);
return filter_len;
} else { /* process arg as is */
@@ -446,7 +442,7 @@ slapi_filter_sprintf(const char *fmt, ...)
char*
slapi_escape_filter_value(char* filter_str, int len)
{
- struct berval *escaped_filter = NULL;
+ struct berval escaped_filter;
struct berval raw_filter;
int filter_len;
@@ -469,11 +465,11 @@ slapi_escape_filter_value(char* filter_str, int len)
*/
raw_filter.bv_val = filter_str;
raw_filter.bv_len = filter_len;
- if(ldap_bv2escaped_filter_value(&raw_filter, escaped_filter) != 0){
+ if(ldap_bv2escaped_filter_value(&raw_filter, &escaped_filter) != 0){
LDAPDebug(LDAP_DEBUG_TRACE, "slapi_escape_filter_value: failed to escape
filter value(%s)\n",filter_str,0,0);
return NULL;
} else {
- return slapi_ch_strdup(escaped_filter->bv_val);
+ return escaped_filter.bv_val;
}
#else
char *buf = slapi_ch_calloc(sizeof(char), filter_len*3+1);