summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Bokovoy <abokovoy@redhat.com>2013-09-02 15:58:09 +0300
committerNalin Dahyabhai <nalin@dahyabhai.net>2013-11-15 15:12:57 -0500
commit41b540bc76068355e076ba95e60780bd95905d77 (patch)
tree9193fd86ff1eb576854d94960d1c4ce59aeb1a43
parent7416c28fa55cb9ae2a41851fb1f1c7d5b2a64b6f (diff)
downloadslapi-nis-41b540bc76068355e076ba95e60780bd95905d77.tar.gz
slapi-nis-41b540bc76068355e076ba95e60780bd95905d77.tar.xz
slapi-nis-41b540bc76068355e076ba95e60780bd95905d77.zip
Coverity#11937: use proper structure to pass to map_data_set_entry()
map_data_set_entry() passes pointers to the lengths of the key and the value to map_data_save_list() which interpretes them as arrays of integers.
-rw-r--r--src/back-sch.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/back-sch.c b/src/back-sch.c
index e5a6937..dde363c 100644
--- a/src/back-sch.c
+++ b/src/back-sch.c
@@ -410,7 +410,7 @@ backend_set_entry_from(Slapi_PBlock *pb, enum backend_entry_source source,
const char *hexchars = "0123456789ABCDEF";
char *rdn, *ndn, *ldif, *plugin_id, *keys[2], *values[2], **ava, *p, *q;
char *usn, *attr, *val;
- unsigned int rdn_len, value_len, *ava_lens;
+ unsigned int rdn_len[2], value_len[2], *ava_lens;
const char *rdnstr;
int len, i, j, k, count;
Slapi_Entry *entry;
@@ -439,7 +439,7 @@ backend_set_entry_from(Slapi_PBlock *pb, enum backend_entry_source source,
&data->common.inref_attrs,
&data->common.ref_attr_list,
&data->common.inref_attr_list,
- &rdn_len);
+ rdn_len);
if ((rdn == NULL) || (strlen(rdn) == 0) || (strchr(rdn, '=') == NULL)) {
slapi_log_error(SLAPI_LOG_FATAL, plugin_id,
"no RDN for %s, unsetting domain/map/id "
@@ -621,14 +621,16 @@ backend_set_entry_from(Slapi_PBlock *pb, enum backend_entry_source source,
rdn, ndn, slapi_entry_get_ndn(entry));
keys[0] = (char *) rdnstr;
keys[1] = NULL;
- rdn_len = strlen(rdnstr);
+ rdn_len[0] = strlen(rdnstr);
+ rdn_len[1] = -1;
values[0] = (char *) slapi_entry_get_ndn(entry);
values[1] = NULL;
- value_len = -1;
+ value_len[0] = -1;
+ value_len[1] = -1;
map_data_set_entry(data->common.state,
data->common.group, data->common.set, ndn,
- &rdn_len, keys,
- &value_len, values,
+ rdn_len, keys,
+ value_len, values,
backend_entry_make_entry_data(source, e_dn,
entry),
backend_entry_free_entry_data);