ldap/servers/slapd/attrsyntax.c | 2 +-
ldap/servers/slapd/back-ldbm/idl_new.c | 9 ++++++---
ldap/servers/slapd/libglobs.c | 8 +++++---
ldap/servers/slapd/plugin_syntax.c | 16 ++++++++++------
4 files changed, 22 insertions(+), 13 deletions(-)
New commits:
commit a550a91e5c6e507be9558b731a6cbca8ab6050b8
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Wed Feb 20 12:24:47 2013 -0500
Coverity Fixes
Fixed:
13142 - Unused pointer in config_set-onoff()
13141 - Uninitialized pointer in idl_new_range_fetch()
13140 - Dereference before NULL check in slapi_attr_is_dn_syntax()
13139 - Dereference after NULL check in slapi_attr_value_normalize_ext()
13138 - Dereference after NULL check in idl_new_range_fetch()
Also cleaned up some compiler warnings.
Reviewed by: richm(Thanks!)
diff --git a/ldap/servers/slapd/attrsyntax.c b/ldap/servers/slapd/attrsyntax.c
index 8f360d3..26e09db 100644
--- a/ldap/servers/slapd/attrsyntax.c
+++ b/ldap/servers/slapd/attrsyntax.c
@@ -813,7 +813,7 @@ slapi_attr_is_dn_syntax_attr(Slapi_Attr *attr)
const char *syntaxoid = NULL;
int dn_syntax = 0; /* not DN, by default */
- if ( attr->a_plugin == NULL ) {
+ if (attr && attr->a_plugin == NULL) {
slapi_attr_init_syntax (attr);
}
if (attr && attr->a_plugin) { /* If not set, there is no way to get the info */
diff --git a/ldap/servers/slapd/back-ldbm/idl_new.c b/ldap/servers/slapd/back-ldbm/idl_new.c
index 5bc8485..15cab55 100644
--- a/ldap/servers/slapd/back-ldbm/idl_new.c
+++ b/ldap/servers/slapd/back-ldbm/idl_new.c
@@ -400,8 +400,8 @@ idl_new_range_fetch(
int idl_rc = 0;
DBC *cursor = NULL;
IDList *idl = NULL;
- DBT cur_key;
- DBT data;
+ DBT cur_key = {0};
+ DBT data = {0};
ID id = 0;
size_t count = 0;
#ifdef DB_USE_BULK_FETCH
@@ -420,7 +420,10 @@ idl_new_range_fetch(
*flag_err = 0;
return NULL;
}
-
+ if(upperkey == NULL){
+ LDAPDebug(LDAP_DEBUG_ANY, "idl_new_range_fetch: upperkey is NULL\n",0,0,0);
+ return ret;
+ }
dblayer_txn_init(li, &s_txn);
if (txn) {
dblayer_read_txn_begin(be, txn, &s_txn);
diff --git a/ldap/servers/slapd/libglobs.c b/ldap/servers/slapd/libglobs.c
index 7a50720..17ac377 100644
--- a/ldap/servers/slapd/libglobs.c
+++ b/ldap/servers/slapd/libglobs.c
@@ -3111,12 +3111,15 @@ config_set_onoff ( const char *attrname, char *value, int *configvalue,
{
int retVal = LDAP_SUCCESS;
slapi_onoff_t newval = -1;
+#ifndef ATOMIC_GETSET_ONOFF
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
+#endif
if ( config_value_is_null( attrname, value, errorbuf, 0 )) {
return LDAP_OPERATIONS_ERROR;
}
+ CFG_ONOFF_LOCK_WRITE(slapdFrontendConfig);
if ( strcasecmp ( value, "on" ) != 0 &&
strcasecmp ( value, "off") != 0 &&
/* initializing the value */
@@ -3132,8 +3135,6 @@ config_set_onoff ( const char *attrname, char *value, int *configvalue,
/* we can return now if we aren't applying the changes */
return retVal;
}
-
- CFG_ONOFF_LOCK_WRITE(slapdFrontendConfig);
if ( strcasecmp ( value, "on" ) == 0 ) {
newval = LDAP_ON;
@@ -3148,7 +3149,8 @@ config_set_onoff ( const char *attrname, char *value, int *configvalue,
#else
*configvalue = newval;
#endif
- CFG_ONOFF_UNLOCK_WRITE(slapdFrontendConfig);
+ CFG_ONOFF_UNLOCK_WRITE(slapdFrontendConfig);
+
return retVal;
}
diff --git a/ldap/servers/slapd/plugin_syntax.c b/ldap/servers/slapd/plugin_syntax.c
index 5d1d6cc..878e107 100644
--- a/ldap/servers/slapd/plugin_syntax.c
+++ b/ldap/servers/slapd/plugin_syntax.c
@@ -136,7 +136,7 @@ plugin_call_syntax_filter_ava_sv(
if ( ( a->a_mr_eq_plugin == NULL ) && ( a->a_mr_ord_plugin == NULL ) && ( a->a_plugin == NULL ) ) {
/* could be lazy plugin initialization, get it now */
- Slapi_Attr *t = a;
+ Slapi_Attr *t = (Slapi_Attr *)a;
slapi_attr_init_syntax(t);
}
@@ -625,7 +625,7 @@ slapi_attr_values2keys_sv_pb(
0, 0, 0 );
if ( ( sattr->a_plugin == NULL ) ) {
/* could be lazy plugin initialization, get it now */
- slapi_attr_init_syntax(sattr);
+ slapi_attr_init_syntax((Slapi_Attr *)sattr);
}
switch (ftype) {
@@ -797,7 +797,7 @@ slapi_attr_assertion2keys_ava_sv(
"=> slapi_attr_assertion2keys_ava_sv\n", 0, 0, 0 );
if ( ( sattr->a_plugin == NULL ) ) {
/* could be lazy plugin initialization, get it now */
- slapi_attr_init_syntax(sattr);
+ slapi_attr_init_syntax((Slapi_Attr *)sattr);
}
switch (ftype) {
@@ -917,7 +917,7 @@ slapi_attr_assertion2keys_sub_sv(
"=> slapi_attr_assertion2keys_sub_sv\n", 0, 0, 0 );
if ( ( sattr->a_plugin == NULL ) ) {
/* could be lazy plugin initialization, get it now */
- slapi_attr_init_syntax(sattr);
+ slapi_attr_init_syntax((Slapi_Attr *)sattr);
}
if (sattr->a_mr_sub_plugin) {
@@ -974,10 +974,14 @@ slapi_attr_value_normalize_ext(
if (!sattr) {
sattr = slapi_attr_init(&myattr, type);
+ if(!sattr){
+ attr_done(&myattr);
+ return;
+ }
}
if ( ( sattr->a_plugin == NULL ) ) {
/* could be lazy plugin initialization, get it now */
- slapi_attr_init_syntax(sattr);
+ slapi_attr_init_syntax((Slapi_Attr *)sattr);
}
/* use the filter type to determine which matching rule to use */
@@ -1002,7 +1006,7 @@ slapi_attr_value_normalize_ext(
break;
}
- if (!norm_fn) {
+ if (!norm_fn && sattr->a_plugin) {
/* no matching rule specific normalizer specified - use syntax default */
norm_fn = sattr->a_plugin->plg_syntax_normalize;
}