[Date Prev][Date Next] [Chronological] [Thread] [Top]

SQL backend C source error (ITS#2309)

Full_Name: Nikola Milutinovic
Version: 2.1.12
OS: Tru64 UNIX 4.0D
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (

File: ./servers/slapd/back-sql/init.c, line 34

bi.bi_init = backbacksql_initialize;

The problem is this name doesn't exist. I believe the correct line should be:

bi.bi_init = sql_back_initialize;

File: ./servers/slapd/back-sql/entry-id.c, line 439

Tru64 CC chokes on initializations in the form:

struct berval bv[ 2 ] = { bsi->oc->oc->soc_cname, BER_BVNULL };

saying that *that* first initializer is not constant value. Replacing it with
initialization in the code made semi-success:

bv[0] = bsi->oc->oc->soc_cname;
bv[1] = BER_BVNULL;

The second assignment failed, since "BER_BVNULL" is defined to "{ 0L, NULL }",
which is and initializer for an ARRAY, not a STRUCTURE, as far as I know. So,
the final step to the solution was to change the last assignment to this:

bv[1].bv_len = 0L;
bv[1].bv_val = NULL;

This worked.