Hi,
This patch was applied, and thanks for your help.
Sorry for late, since we couldn't have time to review.
On Sat, Aug 17, 2019 at 07:11:28AM +0300, Stefan Strogin wrote:
> v1->v2:
> Use correct static_ASN1_ITEM_start macros instead of ASN1_ITEM_start in
> static_ASN1_SEQUENCE_END_ref definition.
> ---
> src/lib/libcrypto/asn1/asn1t.h | 62 ++++++++++++++++++++++++++++++++++
> 1 file changed, 62 insertions(+)
>
> diff --git a/src/lib/libcrypto/asn1/asn1t.h b/src/lib/libcrypto/asn1/asn1t.h
> index ba380bdf4..e0d5bc1f7 100644
> --- a/src/lib/libcrypto/asn1/asn1t.h
> +++ b/src/lib/libcrypto/asn1/asn1t.h
> @@ -81,6 +81,9 @@ extern "C" {
> #define ASN1_ITEM_start(itname) \
> const ASN1_ITEM itname##_it = {
>
> +#define static_ASN1_ITEM_start(itname) \
> + static const ASN1_ITEM itname##_it = {
> +
> #define ASN1_ITEM_end(itname) \
> };
>
> @@ -102,6 +105,17 @@ extern "C" {
> 0,\
> #tname \
> ASN1_ITEM_end(tname)
> +#define static_ASN1_ITEM_TEMPLATE_END(tname) \
> + ;\
> + static_ASN1_ITEM_start(tname) \
> + ASN1_ITYPE_PRIMITIVE,\
> + -1,\
> + &tname##_item_tt,\
> + 0,\
> + NULL,\
> + 0,\
> + #tname \
> + ASN1_ITEM_end(tname)
>
>
> /* This is a ASN1 type which just embeds a template */
> @@ -130,6 +144,7 @@ extern "C" {
> static const ASN1_TEMPLATE tname##_seq_tt[]
>
> #define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname)
> +#define static_ASN1_SEQUENCE_END(stname)
> static_ASN1_SEQUENCE_END_name(stname, stname)
>
> #define ASN1_SEQUENCE_END_name(stname, tname) \
> ;\
> @@ -142,6 +157,17 @@ extern "C" {
> sizeof(stname),\
> #stname \
> ASN1_ITEM_end(tname)
> +#define static_ASN1_SEQUENCE_END_name(stname, tname) \
> + ;\
> + static_ASN1_ITEM_start(tname) \
> + ASN1_ITYPE_SEQUENCE,\
> + V_ASN1_SEQUENCE,\
> + tname##_seq_tt,\
> + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
> + NULL,\
> + sizeof(stname),\
> + #stname \
> + ASN1_ITEM_end(tname)
>
> #define ASN1_NDEF_SEQUENCE(tname) \
> ASN1_SEQUENCE(tname)
> @@ -176,12 +202,24 @@ extern "C" {
> sizeof(tname),\
> #tname \
> ASN1_ITEM_end(tname)
> +#define static_ASN1_NDEF_SEQUENCE_END(tname) \
> + ;\
> + static_ASN1_ITEM_start(tname) \
> + ASN1_ITYPE_NDEF_SEQUENCE,\
> + V_ASN1_SEQUENCE,\
> + tname##_seq_tt,\
> + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
> + NULL,\
> + sizeof(tname),\
> + #tname \
> + ASN1_ITEM_end(tname)
>
> #define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname,
> stname)
>
> #define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname,
> tname)
>
> #define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname,
> tname)
> +#define static_ASN1_SEQUENCE_END_cb(stname, tname)
> static_ASN1_SEQUENCE_END_ref(stname, tname)
>
> #define ASN1_SEQUENCE_END_ref(stname, tname) \
> ;\
> @@ -194,6 +232,17 @@ extern "C" {
> sizeof(stname),\
> #stname \
> ASN1_ITEM_end(tname)
> +#define static_ASN1_SEQUENCE_END_ref(stname, tname) \
> + ;\
> + static_ASN1_ITEM_start(tname) \
> + ASN1_ITYPE_SEQUENCE,\
> + V_ASN1_SEQUENCE,\
> + tname##_seq_tt,\
> + sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
> + &tname##_aux,\
> + sizeof(stname),\
> + #stname \
> + ASN1_ITEM_end(tname)
>
> #define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \
> ;\
> @@ -238,8 +287,10 @@ extern "C" {
> ASN1_CHOICE(tname)
>
> #define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname)
> +#define static_ASN1_CHOICE_END(stname) static_ASN1_CHOICE_END_name(stname,
> stname)
>
> #define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname,
> tname, type)
> +#define static_ASN1_CHOICE_END_name(stname, tname)
> static_ASN1_CHOICE_END_selector(stname, tname, type)
>
> #define ASN1_CHOICE_END_selector(stname, tname, selname) \
> ;\
> @@ -252,6 +303,17 @@ extern "C" {
> sizeof(stname),\
> #stname \
> ASN1_ITEM_end(tname)
> +#define static_ASN1_CHOICE_END_selector(stname, tname, selname) \
> + ;\
> + static_ASN1_ITEM_start(tname) \
> + ASN1_ITYPE_CHOICE,\
> + offsetof(stname,selname) ,\
> + tname##_ch_tt,\
> + sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\
> + NULL,\
> + sizeof(stname),\
> + #stname \
> + ASN1_ITEM_end(tname)
>
> #define ASN1_CHOICE_END_cb(stname, tname, selname) \
> ;\
> --
> 2.22.1
>