From 585d536de6927cf47ef817f541db392dfca4526b Mon Sep 17 00:00:00 2001 From: Mark Reynolds Date: Wed, 22 Jan 2020 15:10:04 -0500 Subject: [PATCH] Issue 49254 - Fix compiler failures and warnings Description: Fix issues with new gcc compiler flag "-fno-common", and clean up doxygen warnings around libsds relates: https://pagure.io/389-ds-base/issue/49254 Reviewed by: mhonek, spichugi, and tbordaz (Thanks!!!) --- docs/slapi.doxy.in | 2 - ldap/servers/plugins/acl/acl.c | 1 + ldap/servers/plugins/acl/acl.h | 4 +- ldap/servers/plugins/acl/acl_ext.c | 2 + ldap/servers/slapd/result.c | 8 ++-- ldap/servers/slapd/slap.h | 4 +- ldap/servers/slapd/tools/ldclt/ldapfct.c | 2 +- src/libsds/include/sds.h | 56 ++++++++++++++---------- 8 files changed, 47 insertions(+), 32 deletions(-) diff --git a/docs/slapi.doxy.in b/docs/slapi.doxy.in index 2cc2d5f47..b1e4810ab 100644 --- a/docs/slapi.doxy.in +++ b/docs/slapi.doxy.in @@ -760,7 +760,6 @@ WARN_LOGFILE = INPUT = src/libsds/include/sds.h \ docs/job-safety.md \ - src/nunc-stans/include/nunc-stans.h # ldap/servers/slapd/slapi-plugin.h \ # This tag can be used to specify the character encoding of the source files @@ -1101,7 +1100,6 @@ HTML_EXTRA_STYLESHEET = docs/custom.css # HTML_EXTRA_FILES = docs/nunc-stans-intro.png \ # docs/nunc-stans-job-states.png -HTML_EXTRA_FILES = docs/nunc-stans-job-states.png # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to diff --git a/ldap/servers/plugins/acl/acl.c b/ldap/servers/plugins/acl/acl.c index 5680de669..41a909a18 100644 --- a/ldap/servers/plugins/acl/acl.c +++ b/ldap/servers/plugins/acl/acl.c @@ -13,6 +13,7 @@ #include "acl.h" + /**************************************************************************** * * acl.c diff --git a/ldap/servers/plugins/acl/acl.h b/ldap/servers/plugins/acl/acl.h index 5d453d825..becc7f920 100644 --- a/ldap/servers/plugins/acl/acl.h +++ b/ldap/servers/plugins/acl/acl.h @@ -311,8 +311,8 @@ typedef struct aci #define ATTR_ACLPB_MAX_SELECTED_ACLS "nsslapd-aclpb-max-selected-acls" #define DEFAULT_ACLPB_MAX_SELECTED_ACLS 200 -int aclpb_max_selected_acls; /* initialized from plugin config entry */ -int aclpb_max_cache_results; /* initialized from plugin config entry */ +extern int aclpb_max_selected_acls; /* initialized from plugin config entry */ +extern int aclpb_max_cache_results; /* initialized from plugin config entry */ typedef struct result_cache { diff --git a/ldap/servers/plugins/acl/acl_ext.c b/ldap/servers/plugins/acl/acl_ext.c index 31c61c2f4..797c5d2fd 100644 --- a/ldap/servers/plugins/acl/acl_ext.c +++ b/ldap/servers/plugins/acl/acl_ext.c @@ -23,6 +23,8 @@ static int acl__put_aclpb_back_to_pool(Acl_PBlock *aclpb); static Acl_PBlock *acl__malloc_aclpb(void); static void acl__free_aclpb(Acl_PBlock **aclpb_ptr); +int aclpb_max_selected_acls = DEFAULT_ACLPB_MAX_SELECTED_ACLS; +int aclpb_max_cache_results = DEFAULT_ACLPB_MAX_SELECTED_ACLS; struct acl_pbqueue { diff --git a/ldap/servers/slapd/result.c b/ldap/servers/slapd/result.c index 89f776716..0b13c30e9 100644 --- a/ldap/servers/slapd/result.c +++ b/ldap/servers/slapd/result.c @@ -1954,9 +1954,11 @@ notes2str(unsigned int notes, char *buf, size_t buflen) */ buflen -= len; p += len; - /* Put in the end quote, then back track p. */ - *p++ = '"'; - *p--; + /* + * Put in the end quote. If another snp_detail is append a comma + * will overwrite the quote. + */ + *(p + 1) = '"'; } } diff --git a/ldap/servers/slapd/slap.h b/ldap/servers/slapd/slap.h index d73e9aaae..44f6be97a 100644 --- a/ldap/servers/slapd/slap.h +++ b/ldap/servers/slapd/slap.h @@ -935,7 +935,7 @@ enum }; /* DataList definition */ -struct datalist +typedef struct datalist { void **elements; /* array of elements */ int element_count; /* number of elements in the array */ @@ -1737,7 +1737,7 @@ typedef struct conn * * Online tasks interface (to support import, export, etc) * * After some cleanup, we could consider making these public. * */ -struct slapi_task +typedef struct slapi_task { struct slapi_task *next; char *task_dn; diff --git a/ldap/servers/slapd/tools/ldclt/ldapfct.c b/ldap/servers/slapd/tools/ldclt/ldapfct.c index ca0912d6c..dbfc553d3 100644 --- a/ldap/servers/slapd/tools/ldclt/ldapfct.c +++ b/ldap/servers/slapd/tools/ldclt/ldapfct.c @@ -698,7 +698,7 @@ connectToLDAP(thread_context *tttctx, const char *bufBindDN, const char *bufPass } if (mode & VERY_VERBOSE) printf("ldclt[%d]: T%03d: Before ldap_simple_bind_s (%s, %s)\n", - mctx.pid, thrdNum, binddn, + mctx.pid, thrdNum, binddn ? binddn : "Anonymous", passwd ? passwd : "NO PASSWORD PROVIDED"); ret = ldap_sasl_bind_s(ld, binddn, LDAP_SASL_SIMPLE, &cred, NULL, NULL, &servercredp); /*JLS 05-01-01*/ diff --git a/src/libsds/include/sds.h b/src/libsds/include/sds.h index c649c036d..3f0dd8684 100644 --- a/src/libsds/include/sds.h +++ b/src/libsds/include/sds.h @@ -221,13 +221,13 @@ void sds_free(void *ptr); * sds_crc32c uses the crc32c algorithm to create a verification checksum of data. * This checksum is for data verification, not cryptographic purposes. It is used * largely in debugging to find cases when bytes in structures are updated incorrectly, - * or to find memory bit flips during operation. If avaliable, this will use the + * or to find memory bit flips during operation. If available, this will use the * intel sse4 crc32c hardware acceleration. * * \param crc The running CRC value. Initially should be 0. If in doubt, use 0. * \param data Pointer to the data to checksum. * \param length number of bytes to validate. - * \retval crc The crc of this data. May be re-used in subsequent sds_crc32c calls + * \retval rcrc The crc of this data. May be re-used in subsequent sds_crc32c calls * for certain datatypes. */ uint32_t sds_crc32c(uint32_t crc, const unsigned char *data, size_t length); @@ -1356,48 +1356,60 @@ typedef enum _sds_ht_slot_state { SDS_HT_BRANCH = 2, } sds_ht_slot_state; +/** + * ht values + */ typedef struct _sds_ht_value { - uint32_t checksum; - void *key; - void *value; + uint32_t checksum; /**< the checksum */ + void *key; /**< the key */ + void *value; /**< the key value */ // may make this a LL of values later for collisions } sds_ht_value; +/** + * ht slot + */ typedef struct _sds_ht_slot { - sds_ht_slot_state state; + sds_ht_slot_state state; /**< the checksum */ union { sds_ht_value *value; struct _sds_ht_node *node; - } slot; + } slot; /**< slot union */ } sds_ht_slot; +/** + * ht node + */ typedef struct _sds_ht_node { - uint32_t checksum; - uint64_t txn_id; - uint_fast32_t count; + uint32_t checksum; /**< the checksum */ + uint64_t txn_id; /**< transaction id */ + uint_fast32_t count; /**< the count */ #ifdef SDS_DEBUG uint64_t depth; #endif - struct _sds_ht_node *parent; - size_t parent_slot; - sds_ht_slot slots[HT_SLOTS]; + struct _sds_ht_node *parent; /**< the parent */ + size_t parent_slot; /**< the parent slot */ + sds_ht_slot slots[HT_SLOTS]; /**< the slots */ } sds_ht_node; +/** + * ht instance + */ typedef struct _sds_ht_instance { - uint32_t checksum; - char hkey[16]; - sds_ht_node *root; - int64_t (*key_cmp_fn)(void *a, void *b); - uint64_t (*key_size_fn)(void *key); - void *(*key_dup_fn)(void *key); - void (*key_free_fn)(void *key); - void *(*value_dup_fn)(void *value); - void (*value_free_fn)(void *value); + uint32_t checksum; /**< the checksum */ + char hkey[16]; /**< the key */ + sds_ht_node *root; /**< the root */ + int64_t (*key_cmp_fn)(void *a, void *b); /**< the keycompare function */ + uint64_t (*key_size_fn)(void *key); /**< the key size function */ + void *(*key_dup_fn)(void *key); /**< the key dup function */ + void (*key_free_fn)(void *key); /**< the key free function */ + void *(*value_dup_fn)(void *value); /**< the value dup function */ + void (*value_free_fn)(void *value); /**< the value free function */ } sds_ht_instance; uint64_t sds_uint64_t_size(void *key); -- 2.21.1