diff options
author | Noriko Hosoi <nhosoi@redhat.com> | 2010-07-08 10:52:25 -0700 |
---|---|---|
committer | Noriko Hosoi <nhosoi@redhat.com> | 2010-07-23 13:40:32 -0700 |
commit | 603c5fcc52201d9eca690c5bef29e4e39e340f56 (patch) | |
tree | bd559bf1eda43f29a124599e33cb3eddc6888f5e | |
parent | 2d69093cf71107b36a58b7d7359abc9ca93071f1 (diff) | |
download | ds-603c5fcc52201d9eca690c5bef29e4e39e340f56.tar.gz ds-603c5fcc52201d9eca690c5bef29e4e39e340f56.tar.xz ds-603c5fcc52201d9eca690c5bef29e4e39e340f56.zip |
610281 - fix coverity Defect Type: Control flow issues
https://bugzilla.redhat.com/show_bug.cgi?id=610281
11831 DEADCODE Triaged Unassigned Bug Minor Fix Required
config_set_value() ds/ldap/servers/slapd/libglobs.c
Comment:
The config_set_value meant to set various values (e.g. "off"
and "unknown") depending upon the config_var_type, but this
code overrides the spec and set the empty string to all cases.
- /* for null values, just set the attr value to the empty
- string */
- if (!value) {
- slapi_entry_attr_set_charptr(e, cgas->attr_name, "");
- return;
- }
This patch removes the above blind empty string setting and
relies on the values in each config_var_type case. Plus, adding
the NULL value check to CONFIG_CHARRAY.
-rw-r--r-- | ldap/servers/slapd/libglobs.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/ldap/servers/slapd/libglobs.c b/ldap/servers/slapd/libglobs.c index b8e26d1c..d10466d6 100644 --- a/ldap/servers/slapd/libglobs.c +++ b/ldap/servers/slapd/libglobs.c @@ -5604,13 +5604,6 @@ config_set_value( int ival = 0; uintptr_t pval; - /* for null values, just set the attr value to the empty - string */ - if (!value) { - slapi_entry_attr_set_charptr(e, cgas->attr_name, ""); - return; - } - switch (cgas->config_var_type) { case CONFIG_ON_OFF: /* convert 0,1 to "off","on" */ slapi_entry_attr_set_charptr(e, cgas->attr_name, @@ -5638,12 +5631,16 @@ config_set_value( break; case CONFIG_CHARRAY: - values = strarray2bervalarray((const char **)*((char ***)value)); - if (!values) { - slapi_entry_attr_set_charptr(e, cgas->attr_name, ""); + if (value) { + values = strarray2bervalarray((const char **)*((char ***)value)); + if (!values) { + slapi_entry_attr_set_charptr(e, cgas->attr_name, ""); + } else { + slapi_entry_attr_replace(e, cgas->attr_name, values); + bervalarray_free(values); + } } else { - slapi_entry_attr_replace(e, cgas->attr_name, values); - bervalarray_free(values); + slapi_entry_attr_set_charptr(e, cgas->attr_name, ""); } break; |