]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUILD: quic: Wrong HKDF label constant variable initializations
authorFrédéric Lécaille <flecaille@haproxy.com>
Thu, 16 Jun 2022 15:53:46 +0000 (17:53 +0200)
committerFrédéric Lécaille <flecaille@haproxy.com>
Mon, 20 Jun 2022 12:50:19 +0000 (14:50 +0200)
Non constant expressions were used to initialize constant variables leading to
such compilation errors:
src/xprt_quic.c:66:3: error: initializer element is not a constant expression
   .key_label_len    = strlen(QUIC_HKDF_KEY_LABEL_V1),
Reproduced with CC=gcc-4.9 compilation option.
Fix using macros for each HKDF label.

src/xprt_quic.c

index 9e2b066bdff265ea586497770ddb5174bc1c1236..678d48ed35fb4e58a64a58ef6ec4df0c67407918 100644 (file)
@@ -63,13 +63,13 @@ const struct quic_version quic_versions[] = {
                .initial_salt     = initial_salt_draft_29,
                .initial_salt_len = sizeof initial_salt_draft_29,
                .key_label        = (const unsigned char *)QUIC_HKDF_KEY_LABEL_V1,
-               .key_label_len    = strlen(QUIC_HKDF_KEY_LABEL_V1),
+               .key_label_len    = sizeof(QUIC_HKDF_KEY_LABEL_V1) - 1,
                .iv_label         = (const unsigned char *)QUIC_HKDF_IV_LABEL_V1,
-               .iv_label_len     = strlen(QUIC_HKDF_IV_LABEL_V1),
+               .iv_label_len     = sizeof(QUIC_HKDF_IV_LABEL_V1) - 1,
                .hp_label         = (const unsigned char *)QUIC_HKDF_HP_LABEL_V1,
-               .hp_label_len     = strlen(QUIC_HKDF_HP_LABEL_V1),
+               .hp_label_len     = sizeof(QUIC_HKDF_HP_LABEL_V1) - 1,
                .ku_label         = (const unsigned char *)QUIC_HKDF_KU_LABEL_V1,
-               .ku_label_len     = strlen(QUIC_HKDF_KU_LABEL_V1),
+               .ku_label_len     = sizeof(QUIC_HKDF_KU_LABEL_V1) - 1,
                .retry_tag_key    = (const unsigned char *)QUIC_TLS_RETRY_KEY_DRAFT,
                .retry_tag_nonce  = (const unsigned char *)QUIC_TLS_RETRY_NONCE_DRAFT,
        },
@@ -78,13 +78,13 @@ const struct quic_version quic_versions[] = {
                .initial_salt     = initial_salt_v1,
                .initial_salt_len = sizeof initial_salt_v1,
                .key_label        = (const unsigned char *)QUIC_HKDF_KEY_LABEL_V1,
-               .key_label_len    = strlen(QUIC_HKDF_KEY_LABEL_V1),
+               .key_label_len    = sizeof(QUIC_HKDF_KEY_LABEL_V1) - 1,
                .iv_label         = (const unsigned char *)QUIC_HKDF_IV_LABEL_V1,
-               .iv_label_len     = strlen(QUIC_HKDF_IV_LABEL_V1),
+               .iv_label_len     = sizeof(QUIC_HKDF_IV_LABEL_V1) - 1,
                .hp_label         = (const unsigned char *)QUIC_HKDF_HP_LABEL_V1,
-               .hp_label_len     = strlen(QUIC_HKDF_HP_LABEL_V1),
+               .hp_label_len     = sizeof(QUIC_HKDF_HP_LABEL_V1) - 1,
                .ku_label         = (const unsigned char *)QUIC_HKDF_KU_LABEL_V1,
-               .ku_label_len     = strlen(QUIC_HKDF_KU_LABEL_V1),
+               .ku_label_len     = sizeof(QUIC_HKDF_KU_LABEL_V1) - 1,
                .retry_tag_key    = (const unsigned char *)QUIC_TLS_RETRY_KEY_V1,
                .retry_tag_nonce  = (const unsigned char *)QUIC_TLS_RETRY_NONCE_V1,
        },
@@ -93,13 +93,13 @@ const struct quic_version quic_versions[] = {
                .initial_salt     = initial_salt_v2_draft,
                .initial_salt_len = sizeof initial_salt_v2_draft,
                .key_label        = (const unsigned char *)QUIC_HKDF_KEY_LABEL_V2,
-               .key_label_len    = strlen(QUIC_HKDF_KEY_LABEL_V2),
+               .key_label_len    = sizeof(QUIC_HKDF_KEY_LABEL_V2) - 1,
                .iv_label         = (const unsigned char *)QUIC_HKDF_IV_LABEL_V2,
-               .iv_label_len     = strlen(QUIC_HKDF_IV_LABEL_V2),
+               .iv_label_len     = sizeof(QUIC_HKDF_IV_LABEL_V2) - 1,
                .hp_label         = (const unsigned char *)QUIC_HKDF_HP_LABEL_V2,
-               .hp_label_len     = strlen(QUIC_HKDF_HP_LABEL_V2),
+               .hp_label_len     = sizeof(QUIC_HKDF_HP_LABEL_V2) - 1,
                .ku_label         = (const unsigned char *)QUIC_HKDF_KU_LABEL_V2,
-               .ku_label_len     = strlen(QUIC_HKDF_KU_LABEL_V2),
+               .ku_label_len     = sizeof(QUIC_HKDF_KU_LABEL_V2) - 1,
                .retry_tag_key    = (const unsigned char *)QUIC_TLS_RETRY_KEY_V2_DRAFT,
                .retry_tag_nonce  = (const unsigned char *)QUIC_TLS_RETRY_NONCE_V2_DRAFT,
        },