]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
4875. [bug] Address compile failures on older systems. [RT #47015]
authorMark Andrews <marka@isc.org>
Wed, 24 Jan 2018 02:10:14 +0000 (13:10 +1100)
committerMark Andrews <marka@isc.org>
Wed, 24 Jan 2018 02:10:44 +0000 (13:10 +1100)
(cherry picked from commit 99178b63297e3a610d55bc529bd610d04b3a6b32)

CHANGES
lib/isc/ht.c
lib/isc/include/isc/deprecated.h

diff --git a/CHANGES b/CHANGES
index e9f1d6b95c598f2296cd7cd8563a56a5bea96557..4a38f38316b26ab2310904c57443f2c681c53274 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+4875.  [bug]           Address compile failures on older systems. [RT #47015]
+
 4874.  [bug]           Wrong time display when reporting new keywarntime.
                        [RT #47042]
 
index e68dca41126b2c01c31e647a5287ae1dbc82e78d..f25063f76d60fec93f1743d127abecfdb9a07eae 100644 (file)
@@ -28,7 +28,7 @@ struct isc_ht_node {
        void *value;
        isc_ht_node_t *next;
        size_t keysize;
-       unsigned char key[];
+       unsigned char key[FLEXIBLE_ARRAY_MEMBER];
 };
 
 struct isc_ht {
@@ -101,7 +101,8 @@ isc_ht_destroy(isc_ht_t **htp) {
                        isc_ht_node_t *next = node->next;
                        ht->count--;
                        isc_mem_put(ht->mctx, node,
-                                   sizeof(isc_ht_node_t) + node->keysize);
+                                   offsetof(isc_ht_node_t, key) +
+                                   node->keysize);
                        node = next;
                }
        }
@@ -134,7 +135,7 @@ isc_ht_add(isc_ht_t *ht, const unsigned char *key,
                node = node->next;
        }
 
-       node = isc_mem_get(ht->mctx, sizeof(isc_ht_node_t) + keysize);
+       node = isc_mem_get(ht->mctx, offsetof(isc_ht_node_t, key) + keysize);
        if (node == NULL)
                return (ISC_R_NOMEMORY);
 
@@ -192,7 +193,8 @@ isc_ht_delete(isc_ht_t *ht, const unsigned char *key, isc_uint32_t keysize) {
                        else
                                prev->next = node->next;
                        isc_mem_put(ht->mctx, node,
-                                   sizeof(isc_ht_node_t) + node->keysize);
+                                   offsetof(isc_ht_node_t, key) +
+                                   node->keysize);
                        ht->count--;
 
                        return (ISC_R_SUCCESS);
@@ -310,7 +312,7 @@ isc_ht_iter_delcurrent_next(isc_ht_iter_t *it) {
        else
                prev->next = node->next;
        isc_mem_put(ht->mctx, node,
-                   sizeof(isc_ht_node_t) + node->keysize);
+                   offsetof(isc_ht_node_t, key) + node->keysize);
        ht->count--;
 
        return (result);
index 928751da27bf809ed9632d9e411de613fc6eef56..f011f647cc3713812a9d43e8e09dcdecafef75aa 100644 (file)
 #ifndef ISC_DEPRECATED_H
 #define ISC_DEPRECATED_H
 
-#ifdef __GNUC__
+#if (__GNUC__ + 0) > 3
 #define ISC_DEPRECATED                  __attribute__((deprecated))
 #else
 #define ISC_DEPRECATED                  /* none */
-#endif /* __GNUC __ */
+#endif /* __GNUC__ > 3*/
 
 #endif