]> 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:14 +0000 (13:10 +1100)
CHANGES
lib/isc/ht.c
lib/isc/include/isc/deprecated.h

diff --git a/CHANGES b/CHANGES
index e21066917aa18781944fab0a7d1abb73075ef0da..65871f42d643f7cba41c0c67cd2134c1440e330c 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 a20642a1c51ebdb3373275c787cfdc777f62bd84..2b631a2e50e2746ec6594389f70dff86ecdafa09 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);
 
@@ -193,7 +194,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);
@@ -311,7 +313,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